06 70 451 7867
hello@skool.org.hu

Körpong

27 szept 2019

Körpong

How Can We Help?
← Vissza

Körpong

Nehézség

(azoknak, akik Scratcheztek már legalább egyszer)

Korosztály

 (5-6. osztály)

Elkészítési idő

90 perc a teljes projekthez (60 perc a 6. 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 a Pong játék egy újragondolt változata. A játékos billentyűkkel forgat jobbra-balra négy ütőt, és igyekszik a játéktérben tartani az ütők között pattogó labdát. Minden ütés egy pontot ér. Az ütők száma tíz pontonként eggyel csökken. A játék akkor ér véget, ha a labda eléri a játéktér szélét.

A játék grafikai elemei és a kód nagy része is elő van készítve, a foglalkozás során csak néhány hiányzó részt kell kitölteni.  A végeredményt a kitöltött részletekkel megtaláljátok itt.

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

A teljes projekt hét logikailag elkülönülő lépésben készíthető el. Az ötödik lépés végére már játszható játékot kaptok; eddig mindenképpen érdemes eljutni, hogy a résztvevőknek meglegyen a sikerélménye. Az utolsó négy lépés egy kicsit trükkösebb az előzőeknél; ezek közül bármelyiket kihagyhatjátok.

1.  A projekt megnyitása

A kiinduló projektet itt találjátok. Ez legyen bekészítve a gépekre, hogy a résztvevők dupla kattintással meg tudják nyitni. Mutassátok be a résztvevőknek a kész játékot, és beszéljétek meg közösen, milyen lépésekre lesz majd szükség az elkészítéséhez. Figyeljétek meg az ütő mozgásának sajátosságait.

2.  Az ütő saját mozgása

Ebben a játékban akkor is mozog a főszereplő, ha nem mozgatjuk, csak lassabban, és követve a legutóbb felvett irányt. Az ehhez tartozó kód már elő van készítve a projektben, csak ki kell egészíteni a megfelelő mozgás-blokkokkal:

Ez a kód jól szemlélteti a változók használatát. Érdemes egy-két ilyet mutatni a gyerekeknek, mielőtt elkezdtek változókat bevezetni. A mozgás-blokkokat beillesztve meg is lesz az első sikerélmény, hiszen zöld zászlóra kattintáskor elindulnak az ütők:

3.  Az ütő irányítása billentyűkkel

A billennyűnyomások figyelését kétféleképpen lehet lekódolni. Az egyszerűbb megoldás a külön eseményblokk használata:

Ennek a megoldásnak két hátránya is van. Az egyik az, hogy a billentyű leütését nem csak akkor figyeli, ha a játék éppen fut, hanem akkor is, amikor már leállítottuk. A másik az, hogy szaggatottá teszi az ütő mozgását. Profibb megoldás, ha érzékelés-blokkot használtok a billentyűfigyeléshez:

És ezt a kódot már az előző lépésben összerakotthoz hasonlóan betehetitek egy mindig-ciklusba és beilleszthetitek egy másik eseményblokk alá:

De még mindig nem vagyunk készen. Az előző lépésben láttuk, hogy az ütő magától is mozog, mindig a legutóbbi mozgatás irányába. Ha tehát most jobbra mozgattuk, az ütő irányát is be kell állítani erre:

Ha sikerült a kódot elkészíteni, akkor a másik irányt már rábízhatjátok a résztvevőkre, hogy önálló munkában rakják össze értelemszerű változtatásokkal.

4.  A labda mozgatása

Most elindítjuk a labdát; kattintsatok át erre a szereplőre. A labda megy előre, mindig amerre éppen áll. Érdemes próbálgatni a számokat: ha nagyobbat adtok meg, nehezebb lesz a játék; ha kisebbet, akkor unalmasabb. Ez a kód is lehet a meglevők folytatása:

5.  A labda fordulása

A fordulás egy kicsit trükkös. A szög kiszámításához kell némi matek, ami valószínűleg próbára tenné a résztvevők tűrőképességét. Ezért a labda irányba állítását egy előre megírt blokk intézi:

Az ütközés figyeléséhez érzékelés-blokkot használunk:

És ne feledkezzünk meg arról sem, hogy a játékost megjutalmazzuk a sikeres ütésért. A meglévő kódhoz illesztve így a következőt kapjuk:

Vajon készen vagyunk? Próbáljátok ki a játékot. Azt fogjátok látni, hogy a labda időnként lehetetlen irányokba fordul. Ez egyáltalán nem baj; a programozásnak nagyon fontos része a hibakeresés.

Ha a labda hozzáér az ütőhöz, a megfelelő irányba fordul, és tovább megy. Eddig rendben vagyunk. De mi van akkor, ha nem eleget mozdul, és még mindig érinti az ütőt? Hogy ebből ne legyen baj, a folytatás előtt meg kell várnunk, hogy elhagyja az ütőt; másként fogalmazva addig kell várnunk, amíg már nem ér hozzá az ütőhöz. Szerencsére a Scratch matekos részében van egy “nem” blokk, így ennek a lekódolása sem fog problémát okozni:  

Ez a foglalkozás legkomplexebb kódja. Ha sikerült összerakni, erősítsétek meg a résztvevőket abban, hogy komoly teljesítményen vannak túl.

6.  A játék vége

A játékot akkor veszítjük el, ha a labda kimegy az ütők közül, és eléri a játéktár szélét. Az eddigiek alapján ezt a feltételt már könnyű lekódolni:

De hogy ér véget a játék? A “felirat” szereplőre kattintva láthatjátok, hogy a “vége” üzenet érkezésekor fogja kiírni, hogy “vége”:

Tehát nekünk ezt az üzenetet kell elküldenünk a “labda” szereplőtől:

Ha ennek a fázisnak a végéig eljuttok a foglalkozáson, már játszható játékot kaptok, és a gyerekek sikerélménnyel tudnak távozni.

7.  szintek és nyerés

Ha marad még idő és lelkesedés a foglalkozás végén, akkor fokozhatjátok a játékélményt szintekkel és a nyerés lehetőségével. Az első szintlépés történhet például akkor, ha a elértük a tíz pontot:

 

Pergősebb a játék, ha 10 helyett kisebb számot írtok, és unalmasabb, de magasabb pontokat lehet elérni, ha nagyobbat. A következő szinteket duplikálással tudjátok gyorsan emögé illeszteni:

Persze lehetne elegánsabb megoldást is találni ismétlődő kódrészek nélkül, de ehhez nem kell matek, és a célnak teljesen megfelel:

Végül az utolsó szintváltás helyett már a nyerés jön, a játék végéhez hasonlóan üzenetküldéssel:

Previous Digitális történetmesélés 2: Toldi első ének
Next Mikulásos játék
Table of Contents

Leave a Reply