Labirintus
A labirintus játék kicsit hasonlít a klasszikus Pacman-re: egy labirintusban kell összeszedni a jutalmakat és kijutni belőle, miközben üldöznek a szörnyek. A végeredmény kb. így néz ki:
labirintus.png
Először rajzoljuk meg magát a labirintust! Készítsünk új szereplőt, alakítsuk vektoros képpé, mozgassuk középre (Feladatok → Mozgás → ugorj x: 0 y: 0), majd rajzoljunk meg egy egyszerűsített labirintust a téglalap eszköz segítségével:
p%C3%A1lya.png

Ezt a labirintust 4 alakzat másolásával el tudjuk készíteni; igyekezzünk ne elveszni a résztelekben és gyorsan végezni vele. A labirintus csak úgy „ott van”, egyelőre nincs neki kódja.

Második lépésben rajzoljuk meg a labda szereplőt! A forgási stílus legyen a harmadik, ne foroghasson. (Ennek akkor lehet jelentősége, ha nem tökéletesen középen van.) Ennek a kódját fokozatosan fogjuk fejleszteni, most első körben a mozgatást valósítjuk meg: a nyomógombokkal mozgatjuk, és ha falnak ütközünk, akkor visszalépünk:
labda.png
labdaprogram.png
Harmadik lépés: a cél szereplő. Ezt a labirintushoz hasonlóan készítsük el:
c%C3%A9l.png
A labda szereplő mindig ciklusát egészítsük ki az alábbival, és próbáljuk ki!
labdaprogram_c%C3%A9l.png
Negyedik lépés: boszorkányok. Válasszuk ki a könyvtárból a boszorkány szereplőt (witch), csökkentsük le a méretét úgy, hogy beférjen a labirintusba, majd helyezzük a labirintus második sorába, a nyílás fölé. A Mozgás → Ugorj x: … y: … utasítást húzzuk a feladatokhoz. Ismételjük meg ezt a harmadik sor jobb oldalával, valamint a harmadik sor bal oldalával.
Valósítsuk meg a következő programot: a boszorkányok három másolatban mozognak jobbra-balra. Ehhez egyrészt a forgatási stílust kell megváltoztatni (tipp: először ne változtassuk meg, hogy a diákok megtapasztalják, és lássuk, hogy valaki rájön-e, hogyan lehet megoldani). Az egyszerűség kedvéért mindegyik legyen másolat, a prototípus ne látszódjon. A boszorkányok jobbra-balra mozognak úgy, hogy mindegyik szinten el lehessen rejtőzni. Arra is ügyelni kell, hogy két boszorkány balról jobbra, míg egy jobbról balra indul. A boszorkány programja így az alábbi:
boszork%C3%A1nyprogram.png
Most még egyelőre nem történik semmi, ha hozzáérünk a boszorkányhoz; most valósítsuk meg azt, hogy a boszorkányhoz éréskor véget érjen a játék. A labda szereplő mindig ciklusát az alábbival kell kiegészíteni:
labdaprogram_boszork%C3%A1ny.png


Próbáljuk ki!

Felvetés: ha rosszul állunk idővel, csak egyetlen boszorkányt indítsunk, és esetleg később visszatérünk a több boszorkány problémájára.

Ötödik lépés: jutalomfalatok! Válasszuk ki a könyvtárból a banánt, majd a boszorkányhoz hasonlóan helyezzük a labirintus különböző pontjaiba, és dobjuk az ugorj x: … y: … utasítást a feladatokhoz. Hasonlóan, a prototípus ne látszódjon, csak a másolatok. Ha a a labda hozzáér egy másolathoz, akkor az tűnjön el. A kód a következő:
jutalomprogram.png
Hatodik lépés: csak akkor nyerjünk, ha mindegyik banánt összeszedtük! Ehhez létre kell hozni egy banán nevű minden szereplőhöz tartozó változót. A banánok számolását a banán kódjánál végezzük:
jutalomsz%C3%A1mol%C3%A1s.png
A labda kódját is változtatni kell: akkor nyerünk, ha érintjük a célt úgy, hogy az összes banánt érintettük:
labdaprogram_jutalom.png


Próbáljuk ki! Ha megfelelően működik, akkor állítsuk a változót láthatatlanná.

Hetedik lépés: a játék vége kezelése. A játék már játszható, de a végének van pár szépséghibája: nem áll le azonnal, majd úgymond lefagy. Ha van még idő, ezt módosítsuk úgy, hogy szép legyen. Ehhez a Játéktéren nevezzük át a hátteret játékidőre, és hozzunk létre kettő másikat: az egyiken az legyen a felirat, hogy Nyertél, a másikon az, hogy Vesztettél, ennek megfelelő háttér elnevezésekkel. A játék végén a szereplőket el kell tüntetni. A hátteret a labda szereplőből fogjuk beállítani, a többi szereplő pedig arra fog reagálni. Így a többi szereplőnél a fő program nem a zászlóra kattintáskor indul, hanem a játékidő háttér beállításakor.
A labda szereplő kódjának eleje a következőképpen alakul:
labdaprogram_v%C3%A9ge1.png
A vége vizsgálat erre módosult:
labdaprogram_v%C3%A9ge2.png
Figyeljük meg, hogy most már nem minden áll le, csak ez a feladat, magyarán nem lehet ezentúl mozgatni, és az érintésvizsgáltot is kikapcsoljuk. (Bár látványos jelentősége nincs neki, mivel nem látható, de ha véget ért a játék, akkor nem menjen tovább körbe-körbe a végtelen ciklus.)
A módosítást át kell vezetni a többi szereplőre is. A labirintus és a cél szereplők kódja egyaránt az alábbi:
labirintus_c%C3%A9l_v%C3%A9ge.png
A boszorkányok kódja a következővel bővült:
boszork%C3%A1ny_v%C3%A9ge.png


Mivel a prototípus nem látszik, csak a másolatok, így nem kell azokat külön kezelni, hogy ha prototípusról van szó, akkor tűnjön el, egyébként törlődjön. Elvileg láthatatlanná tehetnénk a másolatokat is, de ha pl. valaki úgy módosítaná a kódot, hogy beletesz egy újraindít gombot, akkor pár száz játék után „kifogyna” a szereplő.
A banán szereplőt is ugyanúgy módosítsuk, ahogy a boszorkával tettük. A végeredmény az alábbi: https://scratch.mit.edu/projects/248548164/.
Természetesen ezt is számos módon lehet tovább fejleszteni, leginkább úgy, hogy minél inkább hasonlítson a pacman-re:

  • Több pálya, melynek technikája a labirintus szereplő több jelmeze. A cél érintésekor a következő pályára ugrunk, és ha elértük az utolsó pályát, akkor ér véget a játék.
  • Precízebben megrajzolt labirintus, arra különösen ügyelve, hogy a labda pontosan el tudjon menni a falig.
  • Precízebben megrajzolt mozgatható szereplő. Itt ügyelni kell arra, hogy ha a szereplő nem szimmetrikus (pl. az alapértelmezett macska), akkor előfordulhat, hogy egy adott állásban nem érinti a labirintust, de a forgatás hatására érinteni fogja. Ezt precízen kezelni kell, és a prototípusnál emiatt döntöttünk a teljesen szimmetrikus szereplő mellett.
  • A jutalomfalatkák (melyek csak az egyszerűség kedvéért banán alakúak) betölthetnék a teljes labirintust, ahogy a pacman esetén is van. A következő pályára ez esetben az összes jutalom összeszedésekor tudunk lépni.
  • Hogy a cél se legyen céltalan: a pacman mintájára tehetünk kaput a labirintus két szélére, melyen át tudunk menni.
  • A boszorkák lehetnek intelligensebbek, akik nem kiszámíthatóan oda-vissza haladnak, hanem üldözik a labda szereplőt. Ehhez persze olyan labirintusra van szükség, ahol elvileg el tud a szereplő menekülni. Ezen a ponton tehát tovább kell finomítani a labirintust.
  • Szintén a pacman mintájára lehetne olyan falatokat elhelyezni, melynek következtében egy ideig a szereplő tudja „megenni” a boszorkányt.
  • Pontszámítás. A nyilvánvaló lehetőségek mellett (jutalomfalatok megevése, boszorkányok megevése, ha lehet), szintén a pacman mintájára megvalósítható a véletlenszerűen megjelenő, rövid ideig ott levő jutalomfalat, plusz pontért.
  • Több élet, és bizonyos pontszám elérésekor plusz életet lehessen kapni.
  • A játék sebessége is változhat. Pl. a pacman játékban, ha a pacman éppen eszi a gombócokat, akkor lassabban halad, mint a szellem, egyébként kb. ugyanakkora sebességű mindkettő. Ha a pacman megeheti a szellemet, akkor a szellemek lassabbak, és távolodnak a pacman-től. Valamint az idő előre haladtával a játék begyorsul.

Ezek a lehetséges fejlesztések messze túlmutatnak az órai kereteken.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License