Először készítsük el a pályát!
- Vektoros módban, a már ismert kitöltött téglalap eszköz segítségével rajzoljunk egy vázlatot:
- Vigyük középre a pályát (a szereplő feladataiban Mozgás → Ugorj x … y …, írjunk 0, 0-t, és kattintsunk rá duplán).
Most kezdjük el elkészíteni a főszereplő kódját!
- Az alapértelmezett macska szereplő megteszi. Nevezzük át (pl. Macska), a forgatási stílus legyen bal-jobb, és kicsinyítsük le.
- Először készítsük el a balra-jobbra mozgás kódját! Balra mozgás esetén nézzen balra, jobbra mozgás esetén jobbra.
- A következő lépés zsákutca lesz, de fontos, hogy belemenjünk, és később kijavítjuk. Az ugrást a következőképpen valósítjuk meg: létrehozunk egy esés nevű változót, aminek az alapértelmezett értéke 0. Ha a macska nem érinti a zöldet, akkor minden lépésben csökken az értéke. Ha a macska érinti a zöldet, akkor ha a játékos nem nyomja meg a szóközt, 0 marad az értéke, egyébként pedig egy nagyobb értéket kap (a pontos értéket ki kell tapasztalni; pl. a 16 jó értéknek bizonyult), végül az esés értékének megfelelőt csökkent az y koordináta.
A program úgy-ahogy működik, viszont az a probléma vele, hogy nemcsak akkor áll meg, ha a lábával érinti a talajt, hanem akárhogy érint zöldet. Valahogy azt kellene leprogramozni, hogy csak akkor álljon meg, ha a lába érinti a zöldet, egyébként ugorjon tovább. A megoldáshoz egy trükkhöz folyamodunk: rajzolunk egy kis téglalapot, amit a macska lábára helyezünk, az folyamatosan követi a macskát, és azt vizsgáljuk, hogy ez a téglalap érinti-e a talajt. Igen ám, de ha eltüntetjük, akkor az ütközésvizsgálat mindig hamisat ad vissza! A megoldás a következő: ha egy szereplő szellem hatását 100-ra tesszük, akkor nem fogjuk látni (teljesen átlátszó), viszont az továbbra is ott van, és az ütközésvizsgálat megfelelő értéket fog mutatni!
- Rajzoljunk tehát egy új szereplőt vektoros módban, nevezzük el Lábnak, és ez legyen egy vízszintes téglalap a közepétől valamennyire lejjebb.
- Ahhoz, hogy precízen be tudjuk fejezni, menjünk a Feladatok alatt a Mozgás utasításokhoz, az ugorj … helyére utasításnál válasszuk ki a macskát, majd kattintsunk rá duplán. Menjünk vissza a jelmezekhez, és módosítsuk addig (mozgassuk, méretezzük), amíg a képernyőt megfelelő nem lesz. Végeredményben középen legyen, mivel ha a macska nézhet jobbra és balra is, szimmetrikusnak kell lennie.
- Első lépésben készítsük el az alábbi kis programot, amely folyamatosan a macska helyére ugrik, és próbáljuk ki, hogy tényleg ezt hajtja végre.
- Most, hogy meggyőződtünk, hogy úgy működik, ahogy szeretnénk, a szellem hatást állítsuk be 100-ra, valamint az esés logikáját (kivéve az y koordináta megváltoztatását) hozzuk át a macskáról a lábra. (Kódrészletet fogd és vidd módszerre „rá lehet dobni” másik szereplőkre, ami átmásolja; az eredetit utána töröljük ki.) Lent látható a láb szereplő kódja, az alatt pedig a lecsökkentett macska kódja:
Most következik a falnak ütközés megvalósítása. Ha úgy valósítanánk meg, hogy ha érinti a megfelelő színt, akkor ne mozdulhasson, akkor „beragadna”. Egy fokkal jobb megoldás érintés esetén azonnal visszaléptetni, de az sem tökéletes, mert megfordulás esetén pár képpont még így is „belelóghat” a falba. Ezt is a lábhoz hasonlóan valósítjuk meg.
- Hozzunk létre először egy jobb szereplőt, ami egy függőleges téglalap lesz, a középtől jobbra. A fenti módon igazítsuk a macskához. Hasonlóan hozzuk létre a bal szereplőt. Mindkét szereplőnek az alapértelmezett programja legyen a mindig ugorj a macska helyére, mint a láb esetén. A macska most kb. így néz ki:
- Hozzunk létre két, minden szereplőhöz kapcsolt változót: balra mehet és jobbra mehet. A jobb szereplőnél állítjuk azt, hogy jobbra mehet-e: ha érinti a fal színét, akkor nem, egyébként igen. Hasonlóan a bal állítja a balra mehet változót. Végül a macska csak akkor mehet jobbra, ha a jobb gomb le van nyomva, és a macska jobbra mehet, és balra szintúgy. Összefoglalva, sorrendben a jobb, a bal és a macska kódja:
Most megvalósítjuk azt, hogy a piros csapda érintésével meghal a szereplő.
- Az egyszerűség érdekében minden leáll; egy teljesebb magvalósításban megfelelő üzenetet írna ki, esetleg több élete is lenne a szereplőnek. A macska kódja tehát a következőre változott:
Utolsó lépésként megvalósítjuk a több pályát.
- A pálya szereplő jelenlegi egyetlen jelmezét nevezzük el pálya1-nek, majd duplázzuk (ennek automatikusan pálya2 lesz a neve) és tükrözzük a függőleges tengely mentén:
- A macska kódjába tegyük bele azt, hogy ha az x hely nagyobb mint 230, akkor küldjön új pálya üzenetet. A kódját módosítsuk úgy, hogy zászlóra kattintáskor a megfelelő helyre ugrás és megfelelő irányba nézés után küldjön egy új pálya üzenetet, és a kód többi része kerüljön az új pálya üzenet érkezésekor alá.
- A pálya szereplő ha új pálya üzenetet kap, akkor felveszi a következő jelmezt.
A végeredmény itt található: https://scratch.mit.edu/projects/238724770/. Ez a játék is számos ponton módosítható:
- Az ugrás után a macska nem mindig ér pontosan földet; ezt érdemes javítani.
- A képernyőn megjelenhetnek jutalompontok, melyeket ha a macska „megeszi”, pontot kap.
- A játék vége „szebb” kezelése.
- Több élet.
- Több, nehezedő pálya.
- Részletesebben kidolgozott pályák.
- Mozgó ellenség (mint a Super Marioban).
Egy teljesebb megvalósítás (kicsit más alapokon): https://scratch.mit.edu/projects/189186753/.