BallBounce – Pallopelimekaniikkaan tutustumista

Tämänkertaisen tunnin aiheena opetella tekemään pieniä pallopelejä ja hahmottamaan niiden toimintamekanismeja.

Oppiainetietotekniikka
Pituus90 minuuttia
Pedagoginen lähestymistapatekemällä oppiminen, teknologian avulla oppiminen
Kompetenssitalgoritmit, ohjelmointi, uudet teknologiat
Luokka-aste4.lk, 5.lk, 6.lk
Teknologiattabletti, älypuhelin, tietokone

Muut tarvittavat materiaalit
Tietokone, verkkoyhteys ja mielellään Android-puhelin

Kuvaus

Aluksi aloitetaan uusi projekti

 Nimeän pelin PalloPeliksi. Nimi ei saa sisältää välilyöntejä, mutta välilyönnin tilalla voi käyttää alaviivaa “_”.

Ruutu halutaan pelialustaksi ja sen aikaansaamiseksi täytyy muistaa estää ruudun vieritys. Tällöin ruudun koko on vain ja ainoastaan ruudun näkyvä osa. Klikataan “Scrollable” pois päältä Screen1:n valinnoista.

 Lisätään ruutuun “Canvas” eli alusta, jossa hahmot, “spritet” liikkuvat. Vedetään ruutuun myös pallo.

Alusta ei ole kummallisen kokoinen, suurennetaan se koko ruudun kokoiseksi asetuksista. Sekä leveys, että korkeus (width ja height) asetetaan “Fill parent”, eli täytä näkyvä osa.

Seuraavaksi valitaan komponenteista pallo ja sen ominaisuuksista suurennetaan sen koko 10:ksi

Siirrytään Blocks-sivulle. Pallon valinnoista löytyy “Flung”-palikka. Flung tarkoittaa lennätettyä tai vipattua ja tätä pääsee ohjaamaan nopealla sormen pyyhkäisyllä. Sormi asetetaan siis pallon päälle ja se “heitetään” johonkin suuntaan. 

Valitaan pallon palikoista nopeus (speed) ja suunta (heading), jotka vedetään flung-palikan sisään.

Klikkaamalla flung-palikassa näkyvää speed- ja heading-nappeja, saa näkyviin uusia palikoita. Näistä vedetään pallon suunnan ja nopeuden jatkoksi neppauksen suunta ja nopeus.

Tällaisenaan ohjelman pallo lässähtää tylsästi reunaan. Tämä voidaan korjata valitsemalla pallon valikosta EdgeReached-palikka. Tämän sisältö toteutetaan, kun pallo osuu reunaan.

Edelleen pallon valikosta otetaan pallon pomppaamista ohjaava palikka, johon kytketään EdgeReached-palikan edge-napin takaa löytyvä get edge. Tähän voitaisiin liittää myös jonkun muun hahmon reuna.

Nyt pallo liikkuu, mutta ainakin kokeilluilla puhelimilla suhteellisen hitaasti.

Otetaan apuun matematiikkakategoriasta kertolaskupalikka. Laitetaan toiselle puolelle get speed-palikka ja toiselle puolelle jokin kerroin. Kertoimella 10 pallo liikkuu jo hyvinkin liukkaasti.

Pallo saadaan liikkumaan luonnollisemin yhdistämällä pyyhkäisyn nopeus sopivaan kertoimeen.

Pallon ohjaaminen puhelinta kallistamalla

Tämä ohjaustapa rakennetaan uudeksi projektiksi, jotta edellinen tapa säilyy myöhempää käyttöä varten sellaisenaan. Seuraavaksi kokeillaan ohjata palloa puhelinta/tablettia kallistelemalla. Alkuvalmistelut tehdään kuten aiemminkin, pallo ja canvas vedetään ruudulle ja ruudun vierittäminen estetään valikosta.

Ihan aluksi mennään Designer-sivulle ja estetään ruudun kääntäminen. Tällä tavoin ruutu ei käänny palloa ohjattaessa. Sensoreista löytyvä orientation sensor lisätään Designer-sivulla ruudulle. Alla oleva kuva kertoo mitä roll, pitch ja azimuth tarkoittavat. 

Roll tarkoittaa kierimistä, Pitch pystysuunnassa kallistamista ja Azimuth kompassineulamaista puhelimen kääntämistä. Kuvan lähde: http://tinyurl.com/p36w4d9

Seuraavaksi etsitään Blocks-sivulla “orientation changed”-palikka. Sen sisältö toteutetaan, kun puhelin havaitsee asennon muuttumisen. Laitetaan sen sisään pallon nopeutta ja suuntaa ohjaavat palikat. Nopeutta ohjataan kallistuksen määrällä, “Magnitude” ja suuntaa kulmalla “Angle”.

Pallo liikkuu taas todella hitaasti, mutta asia voidaan tässäkin tapauksessa korjata käyttämällä kerrointa.

Pallon ohjaaminen nappeja painamalla

Viimeisenä vielä tylsin tapa ohjata palloa, eli nappien käyttäminen. Taas uusi projekti ja alkuvalmistelut kuten aiemminkin. Vedetään Designer-näytössä ohjelmaan neljä nappia. Vedän myös layout-kategoriasta “HorizontalArrangement”-palikan, jolla saan napit jaoteltua vähän loogisemmin.

Vaihdan nappien tekstit kertomaan mitä ne oikeasti tekevät. Blocks-näytössä otan napin valikoista klikkaus-palikan.

Klikin sisälle vedän pallon valikoista suunnan ja nopeuden. Laitan aluksi jokaiseen nopeudeksi 100, suunnaksi laitetaan kullekin napille kuuluva suunta. Suunta ylöspäin on 90, vasemmalle 180, oikealle 0 ja alas -90.

Napeilla ohjaus on todella huono, pallo liukuu joko suoraan ylös-alas- tai vasen-oikea-suunnassa. Koska pallon kimpoaminen on vielä mukana, ei ohjauksesta voida tässä vaiheessa vielä oikein puhua.Vastaavaa tekniikoiden läpikäymistä jatketaan Ravistus-oppimiskuvauksessa. Siinä otetaan mukaan nopeutta ja suuntaa ohjaavat muuttujat, jolloin liikkeestä tulee luonnollisempaa. Muuttujat voidaan ottaa käyttöön kaikilla ohjaustavoilla. Napeilla ja asentoa vaihtaessa luonnollisuus tulee kiihtymisen kanssa, neppaamisessa pallon liikkeen hidastumisessa.

Arviointi

Oppilaiden itsearviointi liikkeen sulavuuden saavuttamisesta tai ohjelmoinnin onnistumisesta

Muuta

Ohjeen alkuperäinen idea on julkaistu osoitteessa App inventor -verkkosivulla. Tämä kyseinen ohje on laajempi ja peräisin Ohjelmoinnin opetusta yläkoululla -blogista. Kummallakin sivulla on useita saman tyyppisiä projekteja.

Leave a Reply

Discover more from Computational Thinking and Acting

Subscribe now to keep reading and get access to the full archive.

Continue reading