06 70 451 7867
hello@skool.org.hu

Húzd a csíkot!

26 szept 2019

Húzd a csíkot!

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

Nehézség

(teljesen kezdő: alkalmas a Scratch megismerésére)

Korosztály

 (ötödik-hatodik osztály)

Elkészítési idő

45 perc

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 izgalmas, de nagyon gyorsan és egyszerűen összerakható egyszereplős játék, kiválóan alkalmas a Scratch-csel való ismerkedésre.. A játékos négy irányban mozgatja a szereplőjét, és igyekszik minél tovább elkerülni, hogy beleütközzön a maga mögött húzott vonalba. A kész játékot itt találjátok meg.

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

1.  A projekt megnyitása

Kezdjetek új projektet. Ezt online munkánál az “Alkoss!” vagy “Create!” gombra kattintva tehetitek meg (a böngésző nyelvi beállításaitól függ), offline szerkesztőnél pedig indításkor magától megnyílik az új projekt. Ha a blokkokban idegen nyelvű szöveget láttok (“move 10 steps”, “turn 15 degrees” stb.), kattintsatok baloldalt felül a földgömb-ikonra, és görgessetek le a magyar nyelvhez. Töröljétek bátran a cica szereplőt (jobb kattintás a szereplő ikonjára, és a legördülő mentüben a “Törlés” opció), aztán ki-ki válassza ki a számára legszimpatikusabbat a szereplőtárból (jobboldalt alul a cicafej formájú “Válassz szereplőt” ikonra kattintva). Az új szereplőt nevezzétek el kedvetek szerint a szereplő ikonja feletti mezőben. Végül válasszatok olyan hátteret, ami illik a szereplőhöz (jobboldalt alul a kis kép formájú “Válassz hátteret” ikonra kattintva).

 

2. A szereplő irányba állítása

A szereplőnket a nyíl-billentyűkkel fogjuk irányítani (vagy WASD-vel, ha vannak gémerek is a teremben). A billentyűfigyelés legegyszerűbb módja az eseményblokk használata. Ez nem a legprofibb megoldás, ezért haladóbb projektekben mást fogunk helyette keresni, de a mostani céljainknak tökéletesen megfelel.

Az esemény-blokkokat a blokk eszköztárban az “Események” kategória sárga pöttyére kattintva (vagy a sárga blokkokig legörgetve) találjátok meg. A billentyűfigyelő eseményblokkban kezdetben a szóköz-billentyű van kiválasztva, de a kis fehér háromszögre kattintva egy felugró menüben lecserélhetitek arra, ami éppen kell:

A cél az, hogy a billentyű lenyomása után a szereplő a megfelelő irányba nézzen. Erre is van egy külön blokk a kék “Mozgás” kategóriában. A két blokkot illesszétek egymáshoz a feladattéren. És a Scratch fejlesztői még arra is gondoltak, hogy  ne kelljen találgatnunk, hány fokos irány merre van. A számmezőre kattintva egy kis forgatós eszköz jelenik meg:

Ha az első két blokk összeillesztésével megvagytok, egyéni munkában haladhattok tovább a többi három iránnyal. Próbáljátok ki, elfordul-e a szereplő a megfelelő irányba. Ha nem, akkor lehet, hogy a forgatási beállításokat kell megváltoztatni a szereplő ikonja fölötti menüben az “Irány” mezőre kattintva, és kiválasztva a körkörös nyilat:

Az is előfordulhat, hogy egy-egy szereplő jelmeze rossz irányba néz, mint a mintaprojektben használt kis űrhajóé is. Ezt pedig úgy tudjátok orvosolni, hogy felül a “Jelmezek” fülre kattintotok, a megjelenő grafikus menüben a nyíl ikonnal jelölt “Kijelölés” eszközre, egérrel kijelölitek a teljes jelmezt, és a kis kék ívelt nyilakkal jelölt forgató eszközzel elforgatjátok. (Ez a gyakorlatban sokkal egyszerűbb és egyértelműbb, mint így leírva.)

 

4. Mozgatás

Azt szeretnénk, hogy a szereplőnk folyamatosan  mozogjon előre, mindig amerre áll. Nem nehéz megtalálni a kék “Mozgás” blokkok között az erre valót:

Ha a blokkra kattintotok, a szereplő előre megy egy kicsit; és ha megint rákattintotok, akkor újra. De mi folyamatos mozgatást szeretnénk, játék közben nem fogunk ráérni kattintgatni. Vajon van arra is Scratch-blokk, hogy valami mindig megtörténjen, ne csak egyszer? Hát persze, csak meg kell keresni. Érdemes a résztvevők figyelmét ilyen kis keresős kihívásokkal fenntartani, amik újabb és újabb apró sikerélményeket csempésznek a projektmunkába. A “Mindig” blokk körülöleli a “menj” blokkot, és így a mozgás folyamatossá válik:

Ha most kattintotok a blokkokra, akkor már valóban elindul a szereplő, és közben tudjátok is billentyűkkel irányítani. Ha meg szeretnétek állítani, akkor elég még egyszer a blokkokra kattintani.

De ez így kicsit még mindig fapados megoldás. A Scratch-projektek elindítására a játéktér fölötti zöld zászló-ikon szolgál, megállítására pedig a mellette lévő stoptábla-ikon:

Hogy a zöldzászló-ikon valóban elindítsa a programkódunkat, szükség van még egy zöldzászlós Scratch-blokkra is. Keressétek meg ezt is, és illesszétek a meglevők fölé:

Most már ez a kód is ugyanúgy néz ki, mint a korábbiak: “kalap”, vagyis eseményblokk van a tetején. Ez így is van rendjén, a Scratch-ben minden kód eseményblokkal kezdődik. Ha most vagy a későbbiekben úgy találjátok, hogy a szereplő mozgása túl gyors, akkor lassíthattok rajta azzal, hogy a “menj” blokkba kisebb számot írtok. Aki kíváncsi, kipróbálhatja, mi történik akkor, ha nagyobb számot ír ide. Túl nagy szám eserén el fog tűnni a szereplő a játéktérről. Ettől nem kell megijedni; vissza lehet hozni az “ugorj véletlen helyre” blokkal. Ezt be is illeszthetitek a “mindig” blokk elé, hogy a zöld zászló mindig visszahozza az elkószált szereplőt:

Most már nagyon szépen mozog a szereplőnk, minden indításkorv máshonnan és máshonnan startolva.

5. Vonalhúzás

Vonalhúzáshoz a “Toll” bővítményből kell majd blokkokat előszednünk. Ezt be tudjátok hozni baloldalt alul a “Bővítmény hozzáadása” ikonra kattintva:

Ha a “tollat tedd le” blokkot a “mindig” elé illesztjük a kódban, innentől a szereplő egy keskeny vonalat fog húzni maga után:

Sajnos újraindítás után a vonalak megmaradnak. Ezt el lehet kerülni a “töröld a rajzokat” blokkal. Fontos, hogy az “ugorj véletlen helyre” blokk után kerüljön, különben lesz egy extra vonalunk is, amit a véleten helyre ugráskor húz a szereplő. Végül a vonal színét és méretét is tetszés szerint beállíthatjátok a megfelelő blokkokkal:

 

Bátran próbálgasságot a különböző értékeket. Az 1 pontos tollméret nagyon keskeny, a 20 nagyon széles. A színválasztáshoz tartozó menü első látásra zavarba ejtő lehet, mert HSL színteret használ, pedig sokkal könnyebben használható, mint az RGB színkeverés. Szép élénk színeket kaptok, ha a fényerőt és a telítettséget nagyra állítjátok, és a szín-csúszkával kiválasztjátok a megfelelőp színt. A szín a telítettség csökkenésével halványodik, a fényerő csökkentésével sötétedik. Fehér színt úgy kaptok, hogy a fényerőt maximumra, a telítettséget pedig minimumra állítjátok; feketét pedig úgy, ha a fényerőt veszitek minimumra. A mintaprojektben egy élénkpiros színt választottunk:

6. Ütközésfigyelés és játék vége

A játék addig tart, amíg a szereplő bele nem ütközik a maga mögött húzott vonalba. A vonalra pedig a színe alapján fogunk tudni ráismerni. Tehát azt kell figyelnünk, hogy a szereplő mikor érinti ezt a színt. a színérintés-figyeléshez is találtok blokkot a világoskék “Érzékelés” kategóriában. A színt ugyanúgy állíthatjátok be, mint az imént; de fontos, hogy az értékek pontosan megegyezzenek. Hogy ne kelljen sok időt tölteni az állítgatással, használhatjátok a színfelvevő ezsközt is a színmenü alján. Ha erre rákattintotok, megjelenik egy kis nagyító, és egy újabb kattintással be tudjátok másolni az új blokkba a játéktérről a nagyító közepén lévő színt:

De milyen kódba illesszük a hatszögletű érintésfigyelő feltételblokkot? A játék addig tart a zöld zászlóra kattintástól, ameddig az érintés be nem következik; ekkor pedig véget ér. Tehát addig kell várnunk, amíg ez be nem következik; ekkor pedig leáll minden, ami eddig futott. Ha ezeket az átfogalmazásokat hangosan kimondjátok a foglalkozáson, akkor a résztvevők hamar meg fogják találni a megfelelő blokkokat:

Vagy más fogalmazással megközelítve a problémát: a zöld zászlóra kattintástól fogva folyamatosan figyeljük, hogy történik-e szín-érintés; és ha történik, akkor leállítunk mindent a projektben. Ez a megfogalmazás egy másik kódhoz vezet:

A két változat természetesen teljesen egyenértékű.

Ha most elindítjátok a projektet, akkor nagy valószínűséggel azt fogjátok tapasztalni, hogy nem működik. Ez egyáltalán nem probléma, sőt: mint minden kreatív tevékenységnek, a programozásnak is elengedhetetlen része, hogy hibás megoldásokon keresztül jutunk el a hibátlanhoz. Próbáljátok meg közösen megtalálni a hiba okát!

A szereplő indulásakor rögtön elkezdi húzni a vonalat; de a vonal frissen megrajzolt pontjai rögtön hozzá is érnek a szereplőhöz, még mielőtt továbbhaladva elhagyná őket. Ezért áll le azonnal a projekt: az első megrajzolt pontban rögtön elakadunk. Hogy lehetne ezen segíteni?

Úgy, ha a szereplő valóban maga mögött húzná a vonalat. Mi sem egyszerűbb ennél: csak odébb kell egy kicsit tenni a jelmezét, hogy jobbra legyen a középpontjától, ahol a rajzolás történik. Ehhez vissza kell mennetek a grafikus szerkesztőbe a “Jelmezek” fülre kattintva, a kis nyíllal kijelölni a szereplőt, és egy kicsit jobbra tenni, hogy jobbra legyen a szürke pöttyel jelölt középpontjától:

És ha már erre jártok, valamelyik sarkánál megfogva le is kicsinyíthetitek a jelmezt, hogy a szereplő jobban elférjen a játéktéren:

Most újraindítva már kifogástalanul fog működni a játék.

7. A játéktér szélén

Hogy ne lehessen a szereplőt a játéktér szélének vezetve ügyeskedni, a széleken egyszerűen visszafordítjuk a szereplőt. Erre is van egy külön Scratch-blokk, hamar meg is találhatjátok a “Mozgás” kategótiában. De hova illesszük a kódban? Mivel a szereplő bármelyik lépésben kiérhet a játéktér szélére, az lesz a legjobb, ha ezt is betesszük a “mindig” blokkba a “menj” mellé:

8. Időmérés

Az időmérést nagyon gyorsan megoldhatjátok: a világoskék “Érintés” kategóriában van egy “időmérő” blokk, és csak annyit kell tennetek, hogy a játék végén a szereplővel kimondatjátok ennek az értékét. A “mondd” blokkot pedig a lila “Kinézet” kategóriában fogjátok megtalálni. Válasszátok azt a változatot, amelyikben a mondás időtartama is benne van:

De hogyan illesszük be ezt a új blokk-párt a meglévő kódba? Ha a “minden álljon le” elé tesszük, akkor még két másodpercig menni fog a szereplőnk, pedig már meg szerettük volna állítani; mögé pedig azért nem tehetjük, mert a “minden feladat álljon le” alján nincs kis fül, ahova kapcsolódni tudnánk.

Erre is van megoldás: a “minden feladat álljon le” blokkot a benne lévő kis fehér háromszögre kattintva átállíthatjuk arra, hogy “a szereplő többi feladata álljon le”. Így már alá illeszthetjük az új blokk-párt:

És íme, kész vagytok a teljes játékkal, lehet versenyezni, ki tudja tovább kikerülni egy-egy változatban a maga mögött húzott vonalat. Legyetek büszkék magatokra, lefejlesztettétek az első közös játékotokat. Most már semmi sem állíthat meg benneteket a programozásban! 🙂

Next Pattogós játék
Table of Contents

Leave a Reply