5. Hahmon ohjelmoiminen – Event sheet

Haluamme tehdä ohjelman, jossa taustakuva liikkuu alaspäin. Eli meidän pitää asettaa ensin kulma, jotta ohjelma tietää mihin suuntaan pitää liikkua. Construct- ohjelmassa kulmat alkavat idässä ja kiertävät sieltä myötäpäivään ( = kellon suuntaisesti). Kun haluamme mennä alaspäin, niin menemme silloin 90°:een kulmassa. X-koordinaatti kasvaa oikealle ja Y-koordinaatti alaspäin pelikentän vasemmasta - ylänurkasta.



Kulman asettaminen taustakuvaan tehdään Bullet- käyttäytymismallin komennoilla seuraavasti.

  1. Paina Add event.
  2. Valitse System ja paina Next.
  3. Valitse kohdasta Start & end toiminto: On start of layout ja paina Done.
  4. Paina Add action.
  5. Valitse Taivas ja paina Next.
  6. Valitse kohdasta Bullet toiminto Set angle of motion ja paina Next.
  7. Laita asetus: Angle: 90 ja paina Done.

Jolloin saamme taivaan liikkumaan ylhäältä alaspäin.


Seuraavaksi voisi miettiä kuinka pelinäkymän ulkopuolella ja alapuolella oleva Taivas-kuva saadaan nostettua ylös, jotta saataisiin rullaava efekti. Eli ehdossa pitäisi mainita, että ollaan pelinäkymän ulkopuolella ja kuvan Y-koordinaatin arvo on oltava positiivinen (negatiivisilla arvoilla ollaan yläpuolella), niin silloin siirretään kuva kahden Taivas-kuva korkeus mitan verran ylöspäin eli kulman suuntaan 270°. Komento tehdään seuraavasti.

  1. Paina Add event.
  2. Valitse Taivas ja paina Next.
  3. Valitse kohdasta Size & Position ehto: Is on-screen ja paina Done.
  4. Nyt loimme ehdon, että Taivas on pelinäkymässä. Kuinka se saadaan päinvastoin eli ei ole pelinäkymässä? Paina hiiren oikeaa painiketta luomasi ehdon päällä ja ota ilmestyvästä valikosta komento: Invert, niin ehto saadaan käännettyä päinvastoin. 

    Ehdon eteen ilmestyi punainen ruksi. Tämä tarkoittaa, että ehto on nyt päinvastainen eli Taivas ei ole ruudussa eli pelinäkymässä.
  5. Tarvitsemme tähän komentoon myös lisäehdon: Kuvan pitää olla pelinäkymän alapuolella, ei yläpuolella. Kuva on pelinäkymän alapuolella positiivisilla arvoilla ja pelinäkymän yläpuolella negatiivisilla arvoilla. Paina nyt hiiren oikeaa painiketta uudestaan ja valitse komento: Add another condition.
  6. Valitse Taivas ja paina Next.
  7. Valitse kohdasta Size & Position komento: Compare Y ja paina Next.
  8. Laita asetukset: Comparsion: > Greater than , Y co-ordinate: 0 ja paina Done.
  9. Paina Add action.
  10. Valitse Taivas ja paina Next.
  11. Valitse kohdasta Size & Position komento: Move at angle ja paina Next.
  12. Laita asetukset: Angle: 270, Distance: 1200 ja paina Done. Kohtaan Distance voisi myös kirjoittaa: 2*Taivas.Height eli kahden kuvan korkeuden. Tätä kirjoitustapaa voisi suositella, joten tehdään näin.

Nyt taivaan pitäisi rullata hienosti.



MUUTTUJAT

Muuttujat ovat ohjelman keino tallentaa tietoa ohjelman suorituksen aikana. Mietitään seuraavaksi mitä muuttujia peli tarvitsisi. Haluamme, että peli nopeutuu koko ajan. Pelin nopeus voitaisiin tallentaa muuttujaan: Nopeus.

Lisäksi haluamme, että peli laskee pisteitä, joten tarvitsemme toisen muuttujan. Olkoon sen nimi: Pisteet. Lisäksi otamme käyttöön kolmannen muuttujan: Peli. Peli-muuttujassa on tieto onko peli käynnissä vai ei. Kun Peli-muuttuja saa arvo 0, niin peli on käynnissä. Kun Peli-muuttuja saa arvon 1, niin peli on loppunut.

Muuttujat lisätään painamalla hiiren oikeaa painiketta Event sheet välilehden päällä ja ottamalla komento avautuvasta valikosta: Add global variable. Kohtaan: Name kirjoita muuttujan nimi, esimerkiksi: Nopeus ja kohtaan: Initial value, kirjoita muuttujan saama arvo alussa. Anna esimerkiksi Nopeus-muuttujalle alkuarvo 1. Paina Lopuksi OK.



Samalla tavalla perusta muuttuja: Pisteet ja anna sille alkuarvo 0, sekä perusta muuttuja: Peli ja anna sille alkuarvo 0. Nyt sinulla pitäisi olla kolme muuttujaa, jotka näyttävät tältä.


PELIN IDEA

Tehdään ehto, että joka 5 sekunti arvotaan uusi monsteri ja uusi kukka satunnaiseen paikkaan. Samalla voidaan pelin nopeutta kasvattaa joka 5:s sekunti 0,1 s:lla. Monsteri ja kukka arvotaan pelinäkymän yläpuoliselle alueelle, josta ne liukuvat alaspäin. Liukuminen tapahtuu kunnes ne saavuttavat pelikentän alareunan (Y > 600).

Arpomisalueessa X:n arvot kasvavat 0:sta 800:aan ja Y:n arvot pienenevät 0:sta -600:aan.

Jos monsteri on saavuttanut alareunan, niin monsteri poistetaan ja pelaaja saa yhden pisteen. Piste on ansaittu, koska on onnistuttu väistämään monsteria.

Jos kukka saavuttaa alareunan, niin pelaaja menettää yhden pisteen. Pelin idea on kerätä kukkia, joten jos kukka menee alareunaan, niin kukkien keräämisessä on epäonnistuttu.

Jos perhonen törmää kukkaan, niin silloin kukka poistetaan pelikentältä ja saadaan 10 pistettä.

Jos perhonen törmää monsteriin, niin peli loppuu siihen.


Tehdään seuraavaksi komento: Joka 5:s sekunti, kun peli on käynnissä (Peli = 0), niin arvo Kukka ja Monsteri satunnaiseen paikkaan.Lisäksi kasvata pelin nopeutta 0,5 s:lla. Tämä tehdään seuraavalla tavalla:

 

  1. Paina ensin Add event.
  2. Valitse System ja paina Next.
  3. Valitse kohdasta Time ehto: Every X seconds ja paina Next
  4. Laita kohtaan Intervals (seconds): 5 ja paina Done.
  5. Paina hiiren oikeaa painiketta luomasi ehdon päällä ja avautuvasta valikosta valitse Add another condition.
  6. Valitse System ja paina Next.
  7. Valitse kohdasta Global & local varables komento: Compare variable ja paina Next.
  8. Laita seuraavat asetukset: Variable: Peli, Comparison: = Equal to, Value: 0 ja paina Done.
  9. Paina Add action.
  10. Valitse System ja paina Next.
  11. Valitse kohdasta General toiminto: Create object ja paina Next.
  12. Napsauta kohtaa <click to choose> ja valitse Kukka ja paina OK. Laita kohtaan X: random(0,800) ja kohtaan Y: random(-600,0). Kuittaa valinnat painamalla Done.
  13. Paina Add action.
  14. Valitse System ja paina Next.
  15. Valitse kohdasta General toiminto: Create object ja paina Next.
  16. Napsauta kohtaa <click to choose> ja valitse Mosteri ja paina OK. Laita kohtaan X: random(0,800) ja kohtaan Y: random(-600,0). Kuittaa valinnat painamalla Done.
  17. Paina Add action.
  18. Valitse System ja paina Next.
  19. Valitse kohdasta General & local variables toiminto: Add to ja paina Next.
  20. Laita asetukset: Variable: Nopeus, Value: 0.1 ja paina Done.

Luomasi komento näyttää nyt tältä.

Laitetaan seuraavaksi monsterit liikkumaan, se tehdään seuraavasti.

  1. Paina Add event.
  2. Valitse System ja paina Next.
  3. Valitse kohdasta General ehto: Every tick ja paina Done.
  4. Paina hiiren oikeaa painiketta luomasi ehdon päällä ja avautuvasta valikosta valitse Add another condition.
  5. Valitse System ja paina Next.
  6. Valitse kohdasta Global & local varables komento: Compare variable ja paina Next.
  7. Laita seuraavat asetukset: Variable: Peli, Comparison: = Equal to, Value: 0 ja paina Done.
  8. Paina Add action.
  9. Valitse Kukka ja paina Next.
  10. Valitse kohdasta Size & Position toiminto: Move at angle ja paina Next.
  11. Laita asetukset: Angle: 90 (=alaspäin), Distance: Nopeus (Käytämme tässä muuttujaa, jossa on tieto liikkumisnopeudesta). Kuittaa valinnat painammalla Done.
  12. Paina Add action.
  13. Valitse Mosteri ja paina Next.
  14. Valitse kohdasta Size & Position toiminto: Move at angle ja paina Next.
  15. Laita asetukset: Angle: 90, Distance: Nopeus ja kuittaa valinnat painammalla Done.

Komento on nyt valmis ja se näyttää tältä.




Tähän komentoon voisi lisätä myös pelin pisteiden tulostuksen. Sitä varten tarvitsemme teksti-objektin. Mene takaksin Layout-välilehdelle ja tuplanapsauta työpöydälla ja lisää Text-objekti.



Mennään takaisin Event sheet- välilehdelle ja komentoon 4 ja lisätään sinne pisteiden tulostus.

16. Paina Add action.
17. Valitse text-objekti: Saldo ja paina Next.
18. Valitse kohdasta Text toiminto: Set text ja paina Next.
19.  Lisää kohtaan Text: ”Pisteet: ”&Pisteet ja paina Done.


Tässä teksti kirjoitetaan lainausmerkkien sisäpuolelle ja muuttujat ilman lainausmerkkiä. Muuttujan tilalle tulostuu muuttujan arvo. Muuttujan ja tekstin väliin tulee erotinmerkki: &.



Lisätään seuraavaksi ehdo, mitä tehdään kun kukka ja monsteri saavuttavat alareunan ( Y > 600). Tällöin molemmat poistetaan. Monsterista saa pisteen ja Kukasta menettää pisteen. Tehdään ehto ensin Monsterille.

  1. Paina Add event.
  2. Valitse Monsteri ja paina Next.
  3. Valitse kohdasta Size & Position komento: Compare Y ja paina Next.
  4. Tee seuraavat lisäykset: Comparison: > Greater than, Y co-ordinate: 600 ja paina Done.
  5. Paina Add action.
  6. Valitse System ja paina Next.
  7. Valitse kohdasta Global & local variables toiminto: Add to ja paina Next.
  8. Laita asetukset: Varable: Pisteet, Value: 1 ja paina Done.
  9. Paina Add action.
  10. Valitse Monsteri ja paina Next.
  11. Valitse kohdasta Misc toiminto: Destroy ja paina Done. 

Luomasi komento näyttää nyt tältä:



Tehdään samanlainen komento myös Kukalle.

  1. Paina Add event.
  2. Valitse Kukka ja paina Next.
  3. Valitse kohdasta Size & Position komento: Compare Y ja paina Next.
  4. Tee seuraavat lisäykset: Comparison: > Greater than, Y co-ordinate: 600 ja paina Done.
  5. Paina Add action.
  6. Valitse System ja paina Next.
  7. Valitse kohdasta Global & local variables toiminto: Add to ja paina Next.
  8. Laita asetukset: Varable: Pisteet, Value: -1 ja paina Done.
  9. Paina Add action.
  10. Valitse Kukka ja paina Next.
  11. Valitse kohdasta Misc toiminto: Destroy ja paina Done.

Kukalle sama komento näyttää tältä.



Kukka myös poistetaan, kun se on pelikentän alareunassa, mutta pisteistä otetaan yksi pois, ei lisätä.

Meiltä puuttuu enää törmäyskomennot. Mitä Perhoselle tapahtuu, kun se törmää Kukkaan tai Monsteriin. Aloitetaan kukasta. Kun Perhonen törmää Kukkaan, niin silloin pisteitä tulee 10 lisää ja Kukka poistetaan pelikentältä.

  1. Paina Add event.
  2. Valitse Perhonen ja paina Next.
  3. Valitse kohdasta Collisions komento: On collision with antoher object ja paina Next.
  4. Napsauta hiirellä kohdassa: <click to choose>, valitse Kukka ja paina OK. Lipuksi hyväksy valinnat painamalla Done.
  5. Paina Add action.
  6. Valitse System ja paina Next.
  7. Valitse kohdasta Global & local variables toiminto: Add to ja paina Next.
  8. Laita asetukset: Variable: Pisteet, Value: 10 ja paina Done.
  9. Paina Add action.
  10. Valitse Kukka ja paina Next.
  11. Valitse kohdasta Misc toiminto: Destroy ja paina Done.

Olet nyt luonut seuraavan komennon: