5. Hahmon ohjelmoiminen – Event sheet

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



Haluamme luoda seuraavaksi toiminnon, jossa tykki voi ampua ammuksen hiiren napsautuksen avulla. Lisätään aluksi toiminto, että tykki kääntyy kohti hiirtä. Mene Event sheet väilehdelle.
  1. Paina Add event, valitse System ja paina Next.
  2. Valitse komento General: Every tick (Jokaisella hiiren napsautuksella) ja paina Done.
  3. Paina Add action, valitse Tykki ja paina Next.
  4. Valitse nyt toiminto Angle: Set angle toward position ja paina Next.
  5. Laita kohtaan X: Mouse.X ja kohtaan Y: Mouse.Y. Paina lopuksi Done.

Olemme nyt lisänneet toiminnon. Kun liikutetaan pelikentässä hiirtä, niin Tykki kääntyy kohti tätä hiiren osoitinta. Komento näyttää tältä.


Huomio: Jos testaat toimintoa (= F5), niin nosta väliaikaisesti ammus tykin viereen pelikentän sisälle.

Laitetaan seuraavaksi tykki ampumaan.


Ampuminen hiiren avulla tapahtuu seuraavalla toiminnolla.

  1. Paina Add event.
  2. Valitse Mouse ja paina Next.
  3. Valitse toiminto: On any click ja paina Done.
  4. Paina Add action.
  5. Valitse Tykki ja paina Next
  6. Valitse kohdasta Misc toiminto: Spawn another object ja paina Next
  7. Napsauta hiirellä kohtaa <click to choose> ja valitse Ammus ja paina OK. Lopuksi kuittaa valinta painamalla Done.
  8. Paina uudestaan Add action.
  9. Valitse Ammus ja paina Next.
  10. Valitse kohdasta Physics: Forces toiminto: Apply force at angle ja paina Next.
  11. Kirjoita kohtaan Force: distance(Tykki.X,Tykki.Y,Mouse.X,Mouse.Y) . Tämä tarkoittaa, että tykin voima määrätään tykin koordinaattipisteen (Tykki.X,Tykki.Y) ja hiiren koordinaattipisteen (Mouse.X,Mouse.Y) välisestä etäisyydestä. Mitä kauempana hiirien osoitin on hiiren klikkaus hetkellä tykistä, sitä suurempi on voima. Laita kohtaan Angle: Tykki.Angle eli ammuksen suunta on sama kuin tykin piipun suunta sillä hetkellä kuin klikataan. Paina lopuksi Done.

Olemme nyt luoneet ampumisehdon, joka näyttää tältä.


Huomio: Jos testaat toimintoa (= F5), niin nosta väliaikaisesti ammus tykin viereen pelikentän sisälle.

Tykillä voi nyt ampua sarjatulta. Haluamme kuitenkin tykin, jolla amutaan yksi laukaus kerrallaan. Ennen kuin uusi laukaus voidaan ampua, niin ammuksen pitäisi ensin räjähtää. Yksi laukaus onnistuu, kun otamme käyttöön muuttujan(Olkoon sen nimi esimerkiksi: Tulitus), jossa on kaksi arvoa: 0 = Ampuminen sallitaan, 1 = Ampuminen ei ole mahdollista.

Perustetaan ensin Globaali muuttuja: Tulitus ja annetaan sille alkuarvo 0 eli alussa ampuminen sallitaan.

Globaali-muuttuja perustetaan siten, että painat Event sheet-välilehdellä hiiren oikean painikkeen pohjaan ja valitset avautuvasta valikosta komennon: Add global variable. Laita kohtaan name: Tulitus ja kohtaan Intial Value: 0. Kuittaa valinnat lopuksi painamalla OK-painiketta.



Lisäämme toisen ehdon aikaisemmin luomamme komentoon. Paina hiiren oikeaa painiketta kohdan:
2 Mouse On any click, ehdon päällä ja valitse avautuvasta valikosta: Add another condition.



  1. Valitse System ja paina Next.
  2. Valitse kohdasta Global & local variable toiminto: Compare variable ja paina Next.
  3. Laita asetukset: Variable : Tulitus, Comparison: = Equal to, Value: 0 ja paina Done.
  4. Valitse Add action uudestaan.
  5. Valitse System ja paina Next.
  6. Valitse kohdasta Global & local variable toiminto: Set value ja paina Next.
  7. Laita asetukset: Variable: Tulitus, Value: 1 ja paina Done.

Nyt ampuminen onnistuu vain kerran eli olemme nyt muuttaneet komennon muotoon.



Luodaan seuraavaksi ehto, että kun ammus on tuhottu, niin annetaan Tulitus-muuttujalle takaisin arvo 0 eli tällöin ampuminen on mahdollista. Samaan lausekkeeseen kannattaa lisäksi laittaa toiminto, että kamera näkymä palutetaan takaisin tykkiin. Jos muistat, niin laitoimme ammukselle käyttäytymismallin: ScrollTo. Mutta jos ammusta ei ole, niin kameranäkymän on olatava silloin tykissä ja se houtuu nyt samalla.

  1. Paina Add Event.
  2. Valitse Ammus ja paina Next.
  3. Valitse toimonto: On destroyed rymästä Misc ja paina Done.
  4. Paina Add action.
  5. Valitse System ja paina Next.
  6. Valitse kohdasta Global & local variable toiminto: Set value ja paina Next.
  7. Laita asetukset: Variable: Tulitus, Value: 0 ja paina Done.
  8. Valitse Add action uudestaan.
  9. Valitse System ja paina Next.
  10. Valitse kohdasta Scrolling toiminto: Scroll to object ja paina Next.
  11. Napsauta hiirellä kohtaa: <click to choose>.
  12. Valitse Tykki ja paina OK painiketta. Kuittaa valinnat lopuksi painamalla Done.
Olemme luoneet toiminnon, joka palauttaa ampumisen kun ammus on tuhottu.


Ennen kuin tätä komentoa pääsee testaamaan, niin meidän on tuhottava ammus. Luodaan ehto, kun ammus ei enään liiku eli kun ammuksen nopeus on pienempi kuin 0.1, niin tuhoa ammus. Ammuksen tuhoutuminen voitaisiin vielä jakaa seuraaviin tapahtuma sarjoihin: Odota 1.5 sekunttia, luo räjähdys-objektista klooni ammuksen päälle, odota 0.2 sekuntia, tuhoa ammus, tuhoa räjähdys. Tämä toiminto tehdään seuraavasti.

  1. Paina Add event.
  2. Valitse Ammus ja paina Next.
  3. Kohdasta Physics valitse toiminto: Compare Velocity ja paina Next.
  4. Laita asetukset: Which: Overall velocity, Comparison: ≤ Less or equal, Value: 0.1 ja paina Done.
  5. Paina Add action.
  6. Valitse System ja paina Next.
  7. Kohdasta Time valitse toiminto: Wait ja paina Next.
  8. Laita asetus: Seconds: 1.5 ja paina Done (Huomio: Älä käytä pilkkua).
  9. Paina Add action.
  10. Valitse Ammus ja paina Next.
  11. Valitse kohdasta Misc toiminto: Spawn another object ja paina Next.
  12. Napsauta hiirellä kohtaa: <click to choose>
  13. Valitse Räjädys ja paina OK painiketta. Kuittaa valinnat lopuksi painamalla Done.
  14. Paina Add action.
  15. Valitse System ja paina Next.
  16. Kohdasta Time valitse toiminto: Wait ja paina Next.
  17. Laita asetus: Seconds: 0.2 ja paina Done .
  18. Paina Add action.
  19. Valitse Ammus ja paina Next.
  20. Valitse kohdasta Misc toiminto: Destroy ja paina Done.
  21. Paina Add action.
  22. Valitse Räjähdys ja paina Next.
  23. Valitse kohdasta Misc toiminto: Destroy ja paina Done.

Komento näyttää nyt tältä.



Nyt ampuminen onnistuu halutulla tavalla. Lisäksi ammuksen räjähtäminen nähdään, siksi tarvitaan pieni viive ennekuin räjähdys-kuva poistetaan.

Tarvitsemme vielä komennon, kun Pupu törmää Ammukseen tai Maahan, niin tuhoa pupu. Kokeillaan tässä yhteydessä uutta objektia, nimeltään Particles, joka luo myös räjähdysefektin eli hajottaa pupun atomeiksi.

Mene pelinäkymään (Layout) ja paina hiiren oikeaa painiketta pelikentän päällä ja valitse komento: Insert new object. Valitse Particles ja paina Insert-painiketta.



Napsauta hiirellä pelikentässä, niin tällöin aukeaa tuttu Kuva-ikkuna. Lataa tähän toinen pupun kuvista ja sulje ikkuna. Tämän partikkeli-pupun voit nostaa pelikentän sivulle.


Nimeä myös tämä objekti, esimerkiksi PupuRäjähtää. Muuta asetuksissa: Type: One-shot. Voit vielä hieman muokata partikkeli-kuvion asentoa.



Mennään nyt takaisin Event Sheet-välilehdelle. Lisätään komento kun pupu törmää ammukseen, niin tuhotaan pupu ja näytetään PupuRäjähtää-objekti.

  1. Paina ensin Add event.
  2. Napsauta Pupua ja paina Next.
  3. Valitse komento: Collisions: On collision with another object ja paina Next.
  4. Napsauta hiirellä kohtaa: <click to choose>
  5. Valitse Ammus ja paina OK painiketta. Kuittaa valinta painamalla Done.
  6. Napsauta hiirellä kohtaa: Add action.
  7. Valitse Pupu ja paina Next.
  8. Valitse Misc: Destroy ja paina Done.
  9. Napsauta uudestaan hiirellä kohtaa: Add action.
  10. Valitse Pupu ja paina Next.
  11. Valitse kohdasta Misc toiminto: Spawn another object ja paina Next.
  12. Napsauta hiirellä kohtaa: <click to choose>
  13. Valitse PupuRäjähtää ja paina OK painiketta. Kuittaa valinnat lopuksi painamalla Done.
Nyt meillä toiminto pupun räjäyttämiseksi, joka näyttää tältä.


Tähän kannattaa tosin samalla lisätä lopetusehto. Se voisi olla, että odota 2 sekuntia (jotta nähdään pupun räjäytys) ja siirry seuraavaan pelikenttään eli jatketaan edelistä komentoa.

  1. Paina Add action uudestaan.
  2. Valitse System ja paina Next.
  3. Kohdasta Time valitse toiminto: Wait ja paina Next.
  4. Laita asetus: Seconds: 2 ja paina Done .
  5. Paina Add action uudestaan.
  6. Valitse System ja paina Next.
  7. Valitse kohdasta General toiminto: Go to next/previous layout ja paina Next.
  8. Laita asetus: Which: next ja paina Done.
Äskeinen komento hieman täydennettynä näyttää nyt tältä.


Tee samanlainen komento kun pupu törmää maahan. Voit valita edellisen komennon ja tehdä siitä kopion Copy-Paste toiminnolla (CTRL + C, CTRL+V). Jonka jälkeen muutat vain muutaman kohdan.


Tarvittavat komennot on nyt lisätty, mennään seuraavaksi takaisin pelinäkymän puolelle.