Ampuva avaruusalus
Tässä pelissä on idea ampua raketilla mahdollisimman monta liikkuvaa kiveä (voit keksiä avaruuden tilalle myös muun teeman!). Kiven ampumisesta saa pisteen, ja kiveen osumisesta peli päättyy. Voit testata alla olevaa peliä, jotta saat selville, mitä pelissä on tarkoitus tehdä.
Ohjelmointi tapahtuu taas osoitteessa https://scratch.mit.edu/
Valitse vasemmasta yläkulmasta 'luo'.
- Valitse/piirrä haluamasi tausta pelille
- Luo hahmo, jolla liikutaan ja ammutaan (esim. avaruusalus Rocketship)
- Luo hahmot, joita ammutaan (esim. kivi Rocks)
- Luo hahmo ammuksiksi (piirrä itse tai valitse hahmoksi esim. Button) Muuta kaikkien hahmojen koot ja suunnat peliin sopiviksi.
Ampuvan avaruusaluksen ohjelmointi
Asetetaan ensin aluksen aloituspaikaksi paikka pelinäytön vasemmasta reunasta. Aseta x- ja y-koordinaatteihin järkevät luvut.
Sen jälkeen määritetään aluksen liikkuminen. Aluksen tulee liikkua ylös ja alas nuolinäppäimistä painettaessa. Määritetään liikkuminen jatkumaan niin kauan, kunnes alus osuu kiveen.
Ammuksen ohjelmointi
Ideana on ohjelmoida ammus niin, että se ei aluksi ole näkyvillä. Kun painetaan välilyöntiä, ammuksen pitäisi tulla esiin raketin kohdalta ja lähteä liikkumaan oikealle. Koska ammuksia voi ampua useampia, käytetään apuna kloonin luomista.
Ammuksen saa piiloon käyttämällä piilota-komentoa. Sen jälkeen ammus pitäisi saada samaan kohtaan kuin raketti. Se saadaan asettamalla ammuksen y-koordinaatiksi raketin y-koordinaatti. Pohdi itse, mikä kannattaa laittaa x-koordinaatiksi ja suunnaksi.
Seuraavaksi luodaan ammuksesta koodi aina kun painetaan välilyöntiä.
Sitten pitäisi saada jokainen klooni näkyville sekä liikkumaan suoraan oikealle niin, että klooni häviää, kun se on kulkenut reunan yli.
Ammuttavien kivien ohjelmointi
Vielä halutaan saada näytön oikeaan reunaan ilmestymään kiviä, jotka lähtevät liikkumaan kohti vasenta reunaa vaihtelevilla nopeuksilla. Koska halutaan, että kiviä muodostuu enemmän kuin yksi kerralla, otetaan taas käyttöön kloonin luominen. Toistojen määrä kertoo sen, kuinka monta kiveä näytölle kerrallaan ilmestyy.
Koska kivet halutaan liikkumaan eri nopeuksilla, luodaan uusi muuttuja nimellä ‘nopeus’. Luo muuttuja “vain tälle hahmolle”.
Luodaan ensin jokainen klooni aloittamaan vasemmasta reunasta niin, että x-koordinaatille annetaan tietty arvo ja y-koordinaatin arvo on jokin satunnaisluku. Myös nopeudeksi asetetaan jokin satunnaisluku. Lukuja muuttamalla voit vaihdella nopeutta. Miksi nopeudeksi valitaan negatiiviset luvut?
Seuraavaksi luodaan silmukka, jota toistetaan, kunnes jokin kiven klooneista osuu alukseen. Kiven osuessa alukseen peli päättyy. Jos-silmukalla saadaan määritettyä, että jos kivi osuu vasempaan reunaan tai ammukseen, se siirtyy taas satunnaiseen paikkaan näytön oikeaan reunaan.
-----------------------------------------------------------------------------------------------------------------------------------------------------
Jotta peliin tulee mielekkyyttä, lisätään siihen vielä pisteenlasku.
Luo alukselle uusi muuttuja ‘pisteet’. Luo muuttuja “kaikille hahmoille”. Aseta muuttujan ‘pisteet’ arvo pelin alussa nollaan.
Vielä pitäisi lisätä kiven koodiin ehto, että muuttujan ‘pisteet’ arvo kasvaa aina yhdellä, kun kivi osuu ammukseen.
Nyt pelin pitäisi toimia ja olla valmis. Hyvä! Näytä opelle!
Jatkokehitysideoita:
- Lisää kivien lisäksi toisia muuttujia, joita ei saa ampua.
- Koodaa alukselle kolme elämää.
- Koodaa pisteet pienenemään aina, kun kivi pääsee osumaan reunaan.
- Lisää ajastin, joka kertoo, kuinka kauan alus selviytyy, ennen kuin kivi osuu siihen.
- Keksitkö itse jotain muuta jatkokehitysideaa?