2. rész - ütközések és pontozások. Játék újraindítása és befejezése
Nézzük, mit is készítettünk a multkor:
Most továbbfejlesztjük tudásunkat:

Választunk egy tűz sprite-ot, ez majd megöli a játékost, ha beleütközik. A képek a GM alapkönyvtárában megtalálhatóak! Various alatt!

Feltesszük a játékos sprite-ját.

Majd beillesztünk egy gyémántot is. (Bocs, de ezt a képet utólag vágtam, azért nem látszik a 'tűz' sprite)

Most előkészítjük az objektumokat. Először a tüzet, majd a

Gyémántot. Utánna

Feltesszük a hősünk (a koponya) objektumát is, majd az eventek között kiválasztjuk a COLLISION (ütközés) eseményt. Itt kiválasztjuk a tüzet. Vagyis: Mi történjen, ha hősünk tűzzel érintkezik? Nézzük:

Válasszuk a jobb oldali MISC. fülről a 'Restart the current room' (Pálya újraindítása) ikont, majd válasszunk nekünk tetsző effektet, hogy ha tűzzel érintkezünk, akkor milyen eff. lépjen be a szoba újraindításakor.

Most (a fentiek alapján) készítsük el a gyémánttal való ütközés eseményét! A MISC. fülön van egy SCORE (pont) ikon, amivel be tudjuk állítani a játékos pontszámát. A RELATIVE azt jelenti, hogy az eddigi pontjaihoz viszonyítva legyen beállítva, vagyis ne kezdőértékként kezelje a program az általunk megadott számot. Jelen esetben relatív +1 -el legyen növelve a pontszám, ha gyémántot érintünk.

Ha már a pontoknál tartunk, akkor azért azt jó lenne a játék elején nullázni. Nem? Ezt az események fülön tehetjük meg (pl.: a hős eseményeinél), az OTHER-t kiválasztva, ott a GAME START-t on. Szintén válasszuk ki a SCORE-t, majd

Írjunk be egy sima (tehát nem RELATÍV) nullát. Ezzel minden játék kezdetekor (nem minden pálya kezdetekor!) lenullázódik a játékos pontjainak száma. Ok?

Ha a játékos a gyémánttal ütközik, akkor a gyémántnak el is kell tűnnie. Nem igaz? Ezt a következőképpen tehetjük meg. Ez a legegyszerűbb megoldás egyenlőre:
Válasszuk ki a gyémántot, majd az ütközés eseményen válasszuk a koponyát, s az OBJECTS fülön a 'Destroy the instance'-t. Jelöljük be a SELF (önmaga) rádiógombot, majd okézzuk. Ekkor, ha a gyémánt ütközik a hőssel, akkor megsemmisül (a gyémánt). Ok? Magyarán: Megfordítottuk a nézőpontot: most a gyémánt szemszögéből figyeljük az eseményeket; ha nekirohan a hős, akkor megsemmisül.

Már csak a pálya hiányzik, ezt az előzőekben már megbeszéltük....

De picit térjünk vissza az objektumainkhoz. Pontosabban a HŐS-OBJ.-unk eseményeihez. Most A STEP-pel ismerkedünk meg. Ez folyamatosan végrehajtódik a játék során. A játéknak ugyanis véget kellene érnie. Nem?
Ha a játékos begyűjti az összes gyémántot, akkor az véget ér. Hősünkön egy új eseményt kérve válasszuk ki a STEP eseményt, ahhoz pedig a QUESTION fülön levő 'if the number.....' ikont. Ez vizsgálja, hogy mennyi ADOTT objektum van még a pályán. Állítsuk be a gyémántot, a NUMBER-t hagyjuk 0-án, az OPERATION-t pedig equal (egyenlő)-on. Ezzel vizsgáljuk, hogy van-e még gyémánt a pályán. Ok?

Ez alá íllesszünk egy (MISC) 'Display Message'-et. Így tudunk értekezni a felhasználóval. Most azt fogjuk kiíratni egy ablakba, hogy nyert.

Majd pedig véget ér a játék. Ezt az 'End the Game'-mel tudjuk elérni. Így véget ér a játék. Már csak 1 lépés választ el minket a győzelemtől:

FONTOS!: Ha több utasítást akarunk egy feltételhez rakni (most: elfogyott minden gyémánt a pályáról), akkor azokat egy blokkba kell helyezni. Ez minden prog.-i nyelvben így van. Jelen esetben, ahhoz, hogy a szöveg kiírás és utánna játék befejezése is bekövetkezzen a FELTÉTEL BETELJESÜLÉSEKOR(!), ahhoz blokkok közé kell az utasításokat szorítani. Ha nem így teszünk, akkor a feltétel teljesülésekor a szöveg kiíródik, és megáll a játék, de MINDEN ESETBEN megáll a játék... Hmmmmm?
Bye!