06 70 451 7867
hello@skool.org.hu

Autós játék

17 szept 2019

Autós játék

How Can We Help?
Itt jársz:
← Vissza

 

 

Nehézség

(majdnem kezdő: azoknak, akik Scratcheztek már legalább egyszer)

Korosztály

 (ötödik-hatodik osztály)

Elkészítési idő

90 perc a teljes projekthez (45 perc az 5. lépés végéig, az első játszható változathoz)

Eszköz

(online vagy offline szerkesztő)

Elvárás az oktatótól

A Scratch felületének ismerete.

Miről szól a projekt?

Ez egy nagyon egyszerű projekt. Egy félkész autóverseny-játékban kell a résztvevőknek néhány kódrészt kipótolni. A kész változatot itt találjátok meg. Ebben a játékos billentyűkkel irányítja az autóját. A cél az, hogy az előtte haladó másik autót megelőzze. A foglalkozáson a résztvevők az autó fel-le mozgatásával, gyorsításával, lassításával, valamint az ütközés és az előzés figyelésével egészítik ki a kódot a projekt kiinduló változatában.

Az elkészítés lépései

1.  A projekt megnyitása

Osszátok meg a foglalkozás résztvevőivel a projekt kiinduló változatát, amelyből a kódok egy része még hiányzik. Mutassátok be nekik a kész változatot is, hogy lássák a célt, de ezt ne osszátok meg velük, hogy megmaradjon a motiváció. A két autó-szereplő jelmezei közül mindenki válassza ki a számára legszimpatikusabbat.

2. Az autó felfelé mozgatása

A projekt főszereplőjét billentyűkkel irányítjuk, tehát a billentyűérzékelés-blokkokat kell megkeresnünk.

Ha van a résztvevők között olyan, aki máshol Scratchezett már, akkor ő lehet, hogy a megfelelő eseményblokk használatát fogja javasolni:

Ez valóban a legegyszerűbb megoldás a billentyűfigyelésére, de sajnos megvannak a maga korlátai. Egyrészt mi azt szeretnénk, ha a “start üzenet érkezésekor” blokkal tudnánk kezdeni a kódolást, hiszen a “start” üzenet jelzi a játék kezdetét. Egy feladatot viszont csak egy eseményhez tudunkn rendelni (egy blokk-építménynek csak egy tetőeleme lehet). Másrészt ez az eseményblokk a billentyűfigyelést szaggatottá teszi, ami egy játék esetében nem szerencsés.

Ezért érdemesebb az “Érzékelés” menüben található kék blokkok közül megkeresni azt a feltétel-blokkot, amelyik a billennyűnyomást figyeli:

A feltételt betehetitek egy “ha-akkor” blokkba, hiszen az autó akkor mozdul, ha lenyomtuk a billentyűt; azt pedig egy “mindig”-be, hiszen a billentyűket folyamatosan kell figyelni:

Sokat haladtunk a kóddal, de az autó még mindig nem mozog; a mozgatáshoz meg kell változtatni a megfelelő koordinátáját. Ha a résztvevők még nem ismerik a koordinátarendszert, akkor ezen a ponton érdemes egy kicsit lelassítani. Nyissátok meg a “Mozgás”-blokkokat, és figyeljétek meg, mi történik a blokkokba írt számokkal, ha a szereplőt feljebb vagy lejjebb teszitek a játéktéren:

 

Láthatjuk, hogy a sok szám közül csak az y értéke változik nagyot (egy kicsit persze x-é is, hiszen a rakosgatás közben a szereplő óhatatlanul elmozdul jobbra-balra is). Ennyi információ elég is a projekthez: tehát y értékét kell növelni, illetve csökkenteni. (Nincs szükség arra, hogy egy játék kedvéért megértsük a koordinátarendszert a maga absztraktságában,. Viszont később, amikor majd tanórán használjátok a koordinátarendszert, tudtok hivatkozni erre a sikerélményre.)

Tehát az “y változzon” blokkra lesz szükségünk. Hogy ebbe pontosan milyen számot írtok, azt érdemes közösen próbálgatni:

 

Innentől fogva az autó már megfelelően mozog felfelé, bár az orrát még nem fordítja el. Ez majd egy kicsit trükkös lesz, és nem szükséges a játszhatósághoz, ezért érdemes egy kicsit elhalasztani.

3. Lefele mozgás és gyorsítás

Mivel a lefelé mozgatás és a gyorsítás kódja teljesen analóg a felfele mozgatáséval, ezt rábízhatjátok a foglalkozás résztvevőire, hogy önálló munkában szerkesszék meg. Kihívást csak a negatív számok használata és az x koordinátára váltás jelenthet:

4. Lassítás

Ha az autó letér az útról, lassítania kell. Ez is analóg az eddigiekkel; de ezúttal nem a billentyűnyomást kell figyelnünk. Hanem mit? Miben tér el egymástól az út és az út menti fű? Hát a színükben! Ha erre közösen rájöttetek, már  csak meg kell keresni a színérzékelő blokkot. A színt úgy fogjátok tudni beállítani, hogy a blokkban a színmezőre kattintva a felugró menüből kiválasztjátok a színfelvétel eszközt, majd a játéktéren a fűre kattintotok:

A kód innentől már magától értetődőnek tűnik:

Sajnos azonban a játék még nem teljesen jól működik, hiszen a fűre érve továbbra is tudunk gyorsítani. A lassulásnak lehetetlenné kellene tennie a gyorsulást. A hiba tehát az, hogy a kettőt függetlenül kezeltük. Ha az autó a füvön van, akkor lassul (és a billentyűnyomástól függetlenül nem gyorsulhat); ellenkező esetben a billentyűnyomástól függ, hogy gyorsul-e. Tehát ”ha-akkor” helyett “ha-akkor-különben” blokkra van szükségünk:

És itt az üresen maradt helyre már beilleszthetjük a gyorsítás kódját:

5. Nyerés

A játékot akkor nyerjük meg, ha megelőzzük a másik autót; vagyis ha elég közel jutunk a játéktér jobb széléhez. Ez akkor következik be, ha x értéke már elég nagy. Hogy pontosan mekkora, azt próbálgatással tudjátok eldönteni: helyezzétek oda az autót, ahol már úgy gondoljátok, hogy nyerőt helyzetben van; és olvassátok le az x koordinátát, ahogy már korábban is tettétek.

De mi történjen a játék végén? Ha a “felirat” szereplőre kattintotok, láthatjátok, hogy ennek a résznek a kódja már készen van; csak el kell küldenünk a “nyertél!” üzenetet.

És még egy apróság: ezúttal érdemesebb “várj eddig” blokkot használni “ha-akkor” és “mindig” helyett, nehogy tévedésből többször is elküldjük az üzenetet. Végül tehát így fog kinézni a kódunk:

6. Vesztés

A vesztés kódja majdnem pontosan ugyanaz, mint a nyerésé, csak a feltétel és az üzenet más. Ha közösen rájöttetek, hogy a két szereplő érintkezése a kulcs, akkor innentől akár önálló munkában is összerakhatjátok ezt a kódot:

És — tadám! — addig varázsoltatok, amíg egy izgalmas, kifogástalan játékélményt nyújtó játék nem keletkezett a kezetek között. A következő lépésbe már csak akkor kezdjetek bele, ha marad rá időtök és türelmetek.

7. Az autó irányba állítása

Ahogy korábban jeleztük, ez a kódrész is trükkös egy kicsit. Kezdhetitek azzal, hogy megkeresitek az irányba állítós Scratch-blokkot. A Scratch-ben fura módon a 90 fokos irány mutat jobbra, a 0 fokos pedig felfele, pont fordítva, mint matekórán. De ezzel szerencsére nem kell foglalkoznotok. Ha a blokk számmezőjébe kattintotok, megjelenik egy kis iránybeállító eszköz, és ha ennek a mutatóját elfordítjátok, az iránynak megfelelő mérőszám máris bekerül a blokkba:

A blokk helyét már nem lesz nehéz megtalálni a kódban:

Ha most újraindítjátok a játékot, azt láthatjátok, hogy hibásan működik: az autó akkor is felfelé fordulva marad, ha már nincs lenyomva a “felfele nyíl”. Kézenfekvő megoldás, hogy “ha-akkor”-ról “ha-akkor-különben”-re váltsunk:

Így felfele már jól mozog az autó: pontosan addig fordul irányba, amíg a billentyűt nyomva tartjuk. De ha ugyanezt a módosítást elvégzitek a másik irányban is, akkor azt tapasztalhatjátok, hogy most már egyik irányba sem fordul az autó. Mi lehet ennek az oka?

Az ilyen helyzetekben hasznos egy kicsit megállni és közösen végiggondolni, hogy mitől kergülhetett meg a már majdnem jól működő program. Ezekben a helyzetekben fogják megtanulni a gyerekek, hogy a hibáktól nem kell félni, sőt: a jó megoldáshoz mindig hibákon keresztül vezet az út.

Amikor a “felfele nyíl” billentyűt lenyomva tartjuk, akkor általában a “lefele nyíl” billentyűt általában felengedjük, hiszen nem akarunk egyszerre két irányba kanyarodni. Ezért az egyik “ha-akkor-különben” szerint elfordul az autó, a másik szerint viszont jobbra néz. Ennek a két elvárásnak nem lehet egyszerre megfelelni; nem csoda, hogy összezavarodik a szereplőnk.

Mi lehet a megoldás? Az, ha csak akkor fordítjuk vissza az autót, amikor sem a “felfele nyíl”, sem a “lefele nyíl” nincs lenyomva. Ezt legegyszerűbb teljesen külön kódban intézni. A “sem-sem” az “nem és nem”, és szerencsére mind a “nem”-re, mind az “és”-re van külön Scratch-blokk:

Vagy ha a résztvevőknek az a természetesebb, akkor így is összerakhatjátok a “sem-sem”-et:

A felfele és a lefele mozgás kódját pedig alakítsátok vissza: “ha-akkor-különben” helyett most már újra elég a szakasz elején használt “ha-akkor”. Jó nagy vargabetűk után értünk célba, de megérte: egy klassz látványelemmel gazdagabb lett a játék.

Previous Sejtosztódás
Next Ünnepi kattintgatós játék
Table of Contents

Leave a Reply