Példányváltozók
Az példányváltozók lehetővé teszik, hogy minden szörny megőrizze saját életpontjait. A változó olyan érték, amely megváltozhat, és külön-külön tárolódik az egyes példányokhoz, innét ered a neve, hogy példányváltozó (instance variable).
A szörnyekhez adjuk hozzá az életpont változót. Kattints a szörnyre a projekt sávjában vagy az objektum sávjában. Alternatív megoldásként visszakapcsolhat az elrendezésre és kiválaszthat egy szörny objektumot. A tulajdonságok panelben megjelennek a szörny objektum tulajdonságai. Az Edit variables (Változók szerkesztése) sorban kattintson, az Add / edit (Hozzáadás / szerkesztés) linkre.
Megjelenik az Instance variables (Példányváltozók) ablak. Úgy néz ki, mint a korábban látott Behavior (Viselkedés) párbeszédpanel, ebben az ablakban jelenik meg az objektum példányváltozói. Új hozzáadásához kattints a zöld plusz gombra.
A felbukkanó párbeszédpanelen írd be a névnél, hogy health (életerő), hagyd a Type értéket Number-en és az Initial value (Kezdeti érték) mezőbe írd be az 5-t (az ábra szerint). Ezzel minden szörny 5 élettel fog kezdeni. Amikor eltalálják, kivonjuk az egészséget 1-ből, és amikor az egészség nulla, megsemmisítjük az objektumot.
Ha kész, kattints az OK gombra. Figyeld meg, hogy a változó most megjelenik a példányváltozók párbeszédpanelen és a szörny tulajdonságain is. (Gyorsan megváltoztathatja a kezdeti értékeket a tulajdonságok sávjában, a változók hozzáadásához vagy eltávolításához kattintson a Hozzáadás / Szerkesztés linkre.)
Események változtatása
Váltsunk vissza az események fülre. Jelenleg a szörnyek meghalnak, amint a golyó eltalálja őket. Változtassuk meg úgy, hogy kivonunk az életükből 1-et.
Keresse meg a következő eseményt: Bullet -> on collision with Monster. Látható, hogy itt van egy Destroy monster művelet. Cseréljük le ezt arra, hogy kivonunk az életükből 1-et. Kattintson a jobb gombbal a Destroy monster műveletre, majd kattintson a Replace (Csere) gombra.
Ugyanaz a párbeszédpanel jelenik meg, mintha új műveletet illesztenénk be, de ezúttal a meglévő a műveletet fogja kicserélni. Válassza Monster -> Subtract from (az Instance variables kategóriából) -> példányváltozó: health és az értéke legyen 1. Kattintson a Done (Kész) gombra . A műveletnek most így kell megjelennie:
Amikor eltalálunk a golyóval egy szörnyet, akkor 1 élerőt veszt és a golyó felrobban, De olyan eseményt még nem készítettük, hogy megöljük a szörnyeket, amikor az életerejük eléri a nullát. Adjunk hozzá még egy eseményt:
Feltétel: Monster -> Compare instance variable (Példányváltozó összehasonlítása) -> Health, Less or equal (Kisebb vagy egyenlő) , 0
Művelet: Monster -> Spawn another object -> Explosion, layer 1
Művelet: Monster -> Destroy
Miért "kisebb vagy egyenlő 0" az "egyenlő 0" helyett? Tegyük fel, hogy a játékhoz egy új erősebb fegyvert adtunk hozzá, amely majd 2-et von le az életből. Amint ezzel a fegyverrel lelő egy szörnyet, úgy lesz az élete 5, 3 ,1, -1,-3. A számokból látjuk, hogy sosem lesz nulla, tehát soha nem fog meghalni! Ezért jobb feltétel a "kisebb vagy egyenlő", ha életerőre alkalmazzuk.
Futtassa a játékot. Most már ötször kell lelőni egy szörnyet mielőtt meghalna.
Pontszámok
Készítsünk pontszámot a játékhoz, hogy a játékos tudja, hogy mennyire ügyes a játékban. Ehhez szükség lesz egy másik változóra. Talán logikusnak tűnik, hogy "tegyük a pontszámot a játékos egyik példányváltozójává!". Elsőre ez nem rossz ötlet, de ne feledje, hogy az értéket az objektum fogja így tárolni. Ha nincsenek példányok, akkor változók sem! Tehát ha töröljük a játékost, akkor már nem mondhatjuk el, mi volt a pontszáma, mert a játékos objektum törölte azt.
Ehelyett egy globális változót fogunk használni . A példányváltozóhoz hasonlóan egy globális változó képes szöveget vagy számot tárolni. Minden változó egyetlen számot vagy szöveget képes tárolni. A globális változók az egész játék számára elérhetőek az összes layoutnál - kényelmes, ha további szinteket akarunk hozzáadni.
Kattints a jobb gombbal az esemény lap alján lévő üres helyre, és válassza a(z) Add global variable (Globális változó hozzáadása) lehetőséget.
Névnek írd be, hogy Score (Pontszám). A többi mezőt hagyja alapértelmezetten, mert egy 0-tól kezdődő szám lesz.
A globális változó vonalként jelenik meg az eseménylapon. Ebben az eseménylapban található, de hozzáférhető bármilyen eseménylapból, bármelyik layouton.
Megjegyzés: Vannak olyan helyi változók is, amelyekhez csak kisebb események férhetnek hozzá, de most ezzel nem foglalkozunk.
Adjunk egy pontot a játékosnak egy szörny megölésére. A "Monster: health less or equal 0” eseményünkben (amikor egy szörny meghal) kattintson az Add action (Művelet hozzáadása) elemre, és válaszd a System (Rendszer) -> Add to (Hozzáadás) ( Global & local variables alatt) -> Score, value (érték): 1. Az eseménynek így kell kinéznie:
Most már a játékosnak lesz egy pontszáma, amely 1-el növekszik minden megölt szörnyért. Ezt a pontszámot még nem látják. Mutassuk meg nekik egy szöveges objektummal.