Materiaalit on lisensoitu Creative Commons BY-NC-SA-lisenssillä, eli materiaalin levittäminen ja muokkaaminen on sallittu, kunhan tekijöiden nimet säilyvät mukana ja jatkoversiot julkaistaan samalla lisenssillä. Kaupallinen käyttö kielletty.

Alkuperäinen tekijä (2016): Jenna Tuominen


Takaisin: Materiaali

Asteroidiajelu

Pelin toiminta Avaruusalus seikkailee asteroidivyöhykkeellä suihkumoottoreiden avulla. Aluksen suuntaa voi vaihdella nuolinäppäimillä. Vyöhykkeeltä löytyy erimuotoisia asteroideja, jotka kaartelevat eri suuntiin. Kentän läpi ajellessa pelaajan pitää ennakoida niiden liikkeitä.
Vaikeustaso Peli on helppo ohjelmoida ja sopii ohjelmointia aloitteleville. Se sisältää vain vähän hahmoja ja niiden väliin jäävä vuorovaikutus on rajattua.
Oppimistavoitteita
  • Opitaan hahmojen ohjailu hiirellä
  • Opitaan hahmojen välisestä vuorovaikutuksesta (kosketus)
  • Harjoitellaan vektoreilla piirtämistä
  • Sivutaan koordinaatistoa
  • Tutustutaan lukujen arpomiseen
  • Tutustutaan muuttujiin (pisteet)
  • Tutustutaan yhteen tapaan laskea aikaa
Toimiva versio Asteroidiajelu mallina Scratchissa
Variaatioita toteutuksessa Asteroidien ja avaruuden tilalla pelissä voi toki olla muitakin ympäristöjä. Pelin ohjelmoinnista saa haastavamman, jos aluksen liike ei ole vain tasaista vaan moottoreita voi polttaa halutessaan. Tällöin liikkeen suuntainen nopeus pitää määrittää muuttujaan, joka normaalisti laskee kohti nollaa, mutta kasvaa moottorien ollessa päällä.

Kuva mallipelistä:

Screenshot esimerkkipelistä. Screenshot esimerkkipelistä.

Työvaiheet:

Väriselite:

Oppimistavoite
Tarkennus tekotapaan
  1. Pelihahmon liike
    Pelihahmoa ohjataan hiirellä, mutta se on koko ajan liikkeessä.
    Pelihahmo liikkuu pelissä osoittamaansa suuntaan. Asusteissa hahmon kuvan pitää siis osoittaa oikealle. Vektorikuvia voi kääntää nuoli-työkalulla niiden yllä löytyvästä pallurasta. Bittikuvissa hahmo pitää valita valinta-työkalulla ja valittu alue pitää sen jälkeen kääntää samaisella palluralla.
    1. Pelihahmo liikkuu ikuisesti pelin käynnistyttyä
    2. Pelihahmo pomppii reunoista
    3. Liiku-komennon jälkeen voi siis suoraan laittaa "pomppaa reunasta" -komennon. Kyseinen komento pomppaa reunasta vain jos viimeinen liikkuminen on siirtänyt hahmon kiinni reunaan.
    4. Hahmo kääntyy sivuille nuolinäppäimistä
    5. Tämän voi toteuttaa ikuisesti-silmukan sisällä aina liikkumisen jälkeen, mutta ohjelmoidessa toisista riippumattomat tehtävät voi myös jaotella erilleen. Kääntymiselle voi siis tehdä myös oman "kun painetaan vihreää lippua - ikuisesti", jonka sisällä vuorotellen testataan jos jompikumpi nuolinäppäin on painettuna. Scratchissa tapahtumista löytyy myös "Kun painetaan näppäintä" -tapahtumia, mutta ne toimivat tökkien.
    6. Pelin alussa komenna hahmo sen alkukohtaan ja käännä se haluamaasi suuntaan
  2. Piirrä yksi asteroidimonikulmiohahmo
    Monikulmioita piirtäessä on hyvä tilaisuus harjoitella vektorigrafiikkaa. Kuvan saa muunnettua vektoritilaan piirtoalueen oikeasta alalaidasta. Monikulmioita piirtäessä kätevin työkalu on neliö-työkalu. Yksinkertaisen neliön piirron jälkeen pitää vaihtaa nuoli-työkalun alta löytyvään viivansiirto-työkaluun. Sillä neliön kulmia voi siirtää, kulmia voi poistaa klikkaamalla ja kulmia voi lisätä kuvion reunaa klikkaamalla.
    Anna monikulmiolle jokin väri, johon kosketuksesta avaruusalus voi myöhemmin tunnistaa törmäyksen. Huomaa, että samaa väriä ei voi esiintyä esim. taustassa.
  3. Asteroidihahmo liikkuu asteroidivyöhykkeen sisällä
    1. Käske asteroidi menemään pelin alussa aloituspaikkaansa
    2. Pelin alettua asteroidi valitsee satunnaisen suunnan
    3. Suunnan voi valita "osoittamalla suuntaan valitse satunnaisluku väliltä 1 - 360". Jos oppilaat eivät vielä tiedä asteista, voi satunnaisen suunnan valita myös toistamalla kääntymiskomentoa satunnaisen (=nopalla arvottavan) määrän kertoja.
    4. Suunnan valinnan jälkeen asteroidi liikkuu ikuisesti
    5. Asteroidi pomppaa tarvittaessa reunasta
    6. Asteroidi jokaisen askeleen jälkeen kääntyy jatkuvasti johonkin suuntaan
  4. Luo lisää asteroideja
    Asteroidihahmon voi kopioida mm. harmaan ylälaidan leimasinikonilla. Tee kaikista asteroideista samanvärisiä!
    1. Muuta uuden asteroidin nimi
    2. Anna uudelle asteroidille jokin eri monikulmio asusteeksi
    3. Jos aiemmin luotu asteroidi piirrettiin vektoritilassa, uuden monikulmion voi helposti luoda nyt aiemmin käytetyllä viivansiirto-työkalulla.
    4. Vaihda tarvittaessa uuden asteroidin aloituspaikkaa, nopeutta ja kääntymisen suuntaa ja/tai määrää
  5. Törmäyksen tunnistus
    Opitaan yksi hahmojen välisen vuorovaikutuksen yksinkertaisimmista tapauksista.
    1. Pelin alusta lähtien pelihahmo odottaa kunnes se koskettaa asteroidin väriin
    2. Oikean värin voi valita klikkaamalla komentoon sijoitettua väritäplää. Tällöin hiiri muuttuu sormeksi, jolla voi käydä koskettamassa sitä väriä mihin kosketusta halutaan testata.
    3. Jos kosketus tapahtuu, hahmo pysäyttää muut itsessään olevat komentosarjat
      Hahmon liike siis pysähtyy heti törmäyksen tapahtuessa.
    4. Pysähdyksen jälkeen hahmo huudahtaa jotain 2 s ajan
    5. Huudahduksen jälkeen hahmo pysäyttää koko pelin toiminnan
  6. Pistelasku
    Peliin voisi halutessaan toteuttaa myös kerättäviä esineitä, mutta tällä kertaa pisteitä saa ajelun kestosta.
    1. Luo muuttuja 'pisteet'
    2. Tässä voi käyttää myös omaa mielikuvitustaan. Hyvä nimi voisi olla myös 'ajelun kesto'
      Ohjelmoinnissa asioiden fiksusti nimeäminen on tärkeää. Ohjelma saatetaan kyllä toteuttaa tietokoneella, mutta sen lukemisen tulisi olla erityisesti helppoa ihmiselle. Ohjelmien päivitys, korjaus ja ylläpito vievät yllättävän paljon aikaa, jos käytettyjä nimiä pitää miettiä.
    3. Pelin alussa aseta pisteet arvoon 0
    4. Alustuksen jälkeen ikuisesti vuorotellen 'odota 1 s' ja kasvata pisteitä yhdellä
    5. Tämä on yksi tapa laskea aikaa. Scratchissa on myös tuntoaisti-työkaluissa 'ajastin', jonka voi käynnistää ja siltä voi kysyä aikaa, mutta ajoittain suoritettavissa tehtävissä se ei ole käytännöllinen.