Kategoriat
Koodaus Koodikoulu Ohjelmointi Scratch

Scratch-ohjelmointi: pelihahmon liikuttaminen

Scratchissa kaikki ohjelmat perustuvat hahmoihin ja niiden toimintaan. Tyypillisesti tavoitteena on usein saada jokin hahmo liikkumaan, joka voi aluksi tuntua kovinkin vaikealta. Tapoja saada hahmo liikkumaan on kuitenkin monia, joista tässä artikkelissa on esitelty yksi. Esimerkissä perusideana on ohjata hahmoa ruudusta toiseen nuolinäppäimillä. 

Kun alamme suunnittelemaan ohjelmaa, ensimmäisenä tulee miettiä tarkoin hahmojen liikkeiden suunnat. Tämä määrittää paljonkin tavan toteuttaa liikettä ja myös sen kuinka hahmot kommunikoivat keskenään. Yhdessä ohjelmassa voi olla useita hahmoja ja hahmot voivat myös kommunikoida keskenään.

Tässä esimerkissä hahmon kulkusuuntaa voi vaihtaa halutessaan, joko vasempaan tai oikeaan. Hahmo pysyy muuten paikallaan, eli se ei hypi tai kulje ylös tai alas. Erityistä tässä esimerkissä on paikallaan pysyvä taso, eli hahmo liikkuu ruudussa, ei tausta.

Esimerkissä on niin kutsuttuja tasoja eli peliruutuja kolme, joiden välillä hahmo voi kulkea miten haluaa. Keskimmäisessä ruudussa hahmon eteen tulee koripalloilija, joka tekee omia liikkeitään. Ruutujen vaihtaminen tapahtuu samassa näkymässä. Kyse on siis taustan vaihtamisesta ja hahmojen siirtämisestä oikealla tavalla.

Linkki projektiin löytyy tästä.

Hahmo 1 (kissa)

Hahmossa tärkeää on se, että kokoajan tarkistetaan mitä näppäimiä on painettuna, ja mikä on hahmon sijainti x-akselilla. Hahmo liikkuu nuolinäppäimillä vasemmalle ja oikealle. Tausta eli ruutu vaihtuu sijainnin (x-sijainti) perusteella.

Itse hahmon liikkumisen lisäksi liikkeeseen kuuluu hahmon animoiminen (esim. jalkojen liike). Näkyvällä hahmolla on niin kutsuttu asuste. Liike edellyttää hahmon asusteen vaihtamista, joten eri suuntiin kävelyyn tarvitaan useita eri asuisteita. Esimerkissä asusteiden vaihtamista varten ohjelmassa on kaksi omaa lohkoa, liike_vasemmalle ja liike_oikealle. Lohkot ovat aliohjelmia (funktio), joihin on sisällytetty tässä tapauksessa kävelyn animointi.

Hahmo 2 (koripalloilija)

Koripalloilija näytetään ruudulla vain kun taustana on basketball-court1-a. Kun taustaksi vaihtuu basketball-court1-a, hahmo liikkuu ohjelmoinnin mukaisesti.

Kirjoittanut TeroA

Isä, insinööri ja opettaja, joka on erityisen kiinnostunut ihmisten ja teknologian välisestä vuorovaikutuksesta, kommunikoinnista ja visuaalisesta oppimisesta. Ikuinen optimisti ja haaveilija...