5. Hahmon ohjelmoiminen – Event sheet

Haluamme ohjelmoida näppäimistöä. Ennen kuin se onnistuu, niin meidän pitää lisätä näppäimistö peliin objektina. Paina pelialueen päällä hiiren oikeaa painiketta ja valitse komento: Insert new object. Etsi objekti-ikkunasta Keyboard ja kuittaa valinta painamalla Insert-painiketta.


Muista nimetä kukin objekti sitä kuvaavalla nimellä.


Näppäimistön ohjelmointi

Haluamme luoda toiminnon kun painetaan nuoli vasemmalle, niin alus pyörii vastapäivään ja kun painetaan nuoli oikealle, niin alus pyörii myötäpäivään.
  1. Mene Event sheet väilehdelle. Paina Add event, valitse Keyboard ja paina Next
  2. Valitse komento Keyboard: Key is down (Kun näppäin on pohjassa) ja paina Next
  3. Paina <click to choose>, jonka jälkeen paina näppäimistöltä nuoli vasemalle ja Left arrow teksti ilmestyy ikkunaan. Kuittaa OK:lla. Paina lopuksi Done
  4. Olemme nyt luoneet ehdon (Kun nuoli vasemalle on painettu), seuraavaksi lisäämme toiminnon. Napsauta hiirellä Add action tekstiä.
  5. Valitse Avaruusalus ja paina Next.
  6. Valitse nyt Rotate counter-clokwise (myötäpäivään) ja paina Next.
  7. Laita seuraavaksi kulman suuruus, kuinka paljon käännytään yhdellä painalluksella. Laita siihen arvo: 2 ja paina Done.

Olemme nyt luoneet seuraavan toiminnon

Samalla tavalla luo toinen lause: Kun painetaan näppäimistöltä nuoli oikealle pohjaan, niin käännä alusta 2 astetta vastapäivään.
  1. Paina Add event, valitse Keyboard ja paina Next. 
  2. Valitse komento Keyboard: Key is down (Kun näppäin on pohjassa) ja paina Next
  3. Paina <click to choose>, jonka jälkeen paina näppäimistöltä nuoli okiealle ja Right arrow teksti ilmestyy ikkunaan. Kuittaa OK:lla. Paina lopuksi Done
  4. Olemme nyt luoneet ehdon (Kun nuoli oikealle on painettu), seuraavaksi lisäämme toiminnon. Napsauta hiirellä  Add action tekstiä.
  5. Valitse Avaruusalus ja paina Next.
  6. Valitse nyt Rotate clokwise (vastapäivään) ja paina Next.
  7. Laita seuraavaksi kulman suuruus, kuinka paljon käännytään yhdellä painalluksella. Laita siihen arvo: 2 ja paina Done.
Jolloin toinen komento on mutoa.


Haluamme luoda seuraavaksi toiminnon, jossa alus lähtee liikkumaan kulman osoittamaan suuntaan, kun painamme nuolen eteenpäin.

  1. MeneEvent sheet väilehdelle. Paina Add event, valitse Keyboard ja paina Next
  2. Valitse komento Keyboard: Key is down (Kun näppäin on pohjassa) ja paina Next
  3. Paina <click to choose>, jonka jälkeen paina näppäimistöltä nuoli ylös ja Up arrow teksti ilmestyy ikkunaan. Kuittaa OK:lla. Paina lopuksi Done.
  4. Olemme nyt luoneet ehdon (Kun nuoli ylös on painettu), seuraavaksi lisäämme toiminnon. Napsauta hiirellä Add action tekstiä.
  5. Valitse avaruusalus ja paina Next. 
  6. Valitse nyt toiminto: Accelerate toward angle, joka löytyy ryhmästä: CustomMovement: Velocity. Paina Next.
  7. Laita kohtaan Acceleration (kiihtyvyys) arvoksi 100 ja kohtaan Angle (kulma) kirjoita teksti: Avaruusalus.Angle eli kulma määräytyy avaruusaluksen mukaan. Paina lopuksi Done.


Olemme nyt lisänneet toiminnon. Kun on painettu nuoli ylös, niin avaruusalus kiihtyy arvolla 100 siihen suuntaan kuin on avaruusaluksen kulma.


Vastaavalla tavalla voit luoda ehdon: Kun on painettu nuoli alas, niin avaruusalus kiihtyy arvolla -100 siihen suuntaan kuin on avaruusaluksen kulma. Koska kiihtyvyys on negatiivinen, niin avaruusalus joko hidastuu tai liikkuu taaksepäin.

  1. MeneEvent sheet väilehdelle. Paina Add event, valitse Keyboard ja paina Next
  2. Valitse komento Keyboard: Key is down (Kun näppäin on pohjassa) ja paina Next
  3. Paina <click to choose>, jonka jälkeen paina näppäimistöltä nuoli alas ja Down arrow teksti ilmestyy ikkunaan. Kuittaa OK:lla. Paina lopuksi Done.
  4. Olemme nyt luoneet ehdon (Kun nuoli ylös on painettu), seuraavaksi lisäämme toiminnon. Napsauta hiirellä  Add action tekstiä.
  5. Valitse avaruusalus ja paina Next. 
  6. Valitse nyt toiminto: Accelerate toward angle, joka löytyy ryhmästä: CustomMovement: Velocity. Paina Next.
  7. Laita kohtaan Acceleration (kiihtyvyys) arvoksi -100 ja kohtaan Angle (kulma) kirjoita teksti: Avaruusalus.Angle eli kulma määräytyy avaruusaluksen mukaan. Paina lopuksi Done.


LASERI

Haluamme luoda seuraavaksi toiminnon, jossa avaruusalus ampuu laserilla eteenpäin kun painetaan välilyönti painiketta.  


  1. Mene Event sheet väilehdelle. Paina Add event, valitse Keyboard ja paina Next
  2. Valitse komento Keyboard: On key pressed (Kun näppäintä on painettu) ja paina Next
  3. Paina <click to choose>, jonka jälkeen paina näppäimistöltä Välilyönti-painiketta (spacebar) ja VÄli teksti ilmestyy ikkunaan. Kuittaa OK:lla. Paina lopuksi Done.

  4. Olemme nyt luoneet ehdon (Kun Välilyönti-painiketta on painettu), seuraavaksi lisäämme toiminnon. Napsauta hiirellä Add action tekstiä.
  5. Valitse avaruusalus ja paina Next.

  6. Valitse kohdasta: Misc, toiminto: Spawn another object (Luo klooni eli kopio toisesta objektista) ja paina Next.
  7. Napsauta kohtaa <click to choose>, jonka jälkeen napsauta Laserin kuvaa ja kuittaa OK:lla. Lopuksi paina Done.
  8. Olemme luoneet seuraavanlaisen toiminnon. Kun painetaan välilyönti-painiketta näppäimistöltä, niin silloin tee laserista kopio avaruusaluksen koordinaatteihin.

Jotta laser liikkuisi, niin siinä pitää olla Bullet- käyttäytymismalli. Jos et ole sitä vielä lisännyt, niin lisää nyt. Lisäksi Laserissa on oltava DestroyOutsideLayout-käyttäytymismalli. Laseri pitää tuhota pelikentän ulkopuolella tai peli hidastuu. Testaa Laserin toimivuus (= F5).

METEORIITTI

Meteoriitissa on oltava seuraavat käyttäytymismallit (Behaviors): Solid (Kiinteä), Bullet (Luoti), Wrap (Tulee vastakkaisesta reunasta takaisin, kun ylittää reunan) ja Rotate (Pyörii). Muuta Bullet-käyttäytymismallissa seuraavat asetukset. 



Tehdään seuraavaksi kopioita meteoriitista. Kopioita saat nopeasti kun painat CTRL-painikkeen pohjaan ja tartut hiirellä meteoriitiin ja raahaat sen uuteen paikkaan. Nosta meteoriitin kopiot ympäri pelikenttää kuten kuvassa. Muuta jokaisen meteoriitin kulma (ja koko) hieman erilaiseksi. Kulman suuruuden voit arvoidan vieressä olevan apukuvion avulla.


Kun katsot peliä ajotilassa (= F5), niin jokaisen meteoriitin pitäisi tulla näkyviin eri paikasta eri kulman arvolla. Jos meteoriitit törmäävät toisiinsa, niin tapahtuu täysin kimmoinen törmäys.


Tehdään seuraavaksi ehto: Jos meteoriitti törmää Avaruusalukseen, niin tuhoa Avaruusalus. Tämä tehdään seuraavalla tavalla:
  1. Paina ensin Add event.
  2. Napsauta Meteoriittia ja paina Next.
  3. Valitse komento: Collisions: On collision with another object ja paina Next.
  4. Napsauta hiirellä kohtaa: <click to choose>
  5. Valitse Avaruusalus ja paina OK painiketta. Paina lopuksi Done painiketta ja olet luonut ehdon.
  6. Napsauta hiirellä kohtaa: Add action.
  7. Valitse Avaruusalus ja paina Next.
  8. Valitse Misc: Destroy ja paina Done.
Olet nyt luonut toiminnon ja lopputulos näyttää tältä.


Samalla tavalla luo ehto: Jos Laser osuu Meteoriittiin, niin tuhoa Meteoriitti ja Laser.

  1. Paina ensin Add event.
  2. Napsauta Laseria ja paina Next.
  3. Valitse komento: Collisions: On collision with another object ja paina Next.
  4. Napsauta hiirellä kohtaa: <click to choose>
  5. Valitse Meteoriitti ja paina OK painiketta. Paina lopuksi Done painiketta ja olet luonut ehdon.
  6. Napsauta hiirellä kohtaa: Add action.
  7. Valitse Meteoriitti ja paina Next.
  8. Valitse Misc: Destroy ja paina Done.
  9. Napsauta hiirellä kohtaa: Add action uudestaan.
  10. Valitse Laser ja paina Next.
  11. Valitse Misc: Destroy ja paina Done.


Lopputuloksen pitäisi näyttää tältä.