2011. június 16., csütörtök

GameMaker - 10. lecke

Ma egy kicsit tovább javítjuk a korábban kezdett pédafájlt. Amennyiben nincs meg az Első játék.gm81 fájl itt letöltheted az előző leckében készített változatot.

A játékosunk már tud egyenletesen körbe-körbe forogni, előre-hátra mászkálni és lőni is. Itt kezdődik a probléma. Ha megnyomjuk a <Space> billentyűt, keletkezik egy obj_bullet nevű Object. Pontosabban akárhányszor megnyomjuk a <Space> gombot egy új Object keletkezik amelynek a pozícióját, sebességét, Sprite-ját és az Event-jeit a processzor kiszámolja. Tehát ha nagyon sokat lövöldözünk egy idő után belassul a játék. (Nyilván ez a lassulás egy ilyen egyszerű játéknál lassan jelentkezik, azonban egy összetettebb játéknál ez komoly probléma lehet.) A lövedék iránya nem változik soha, tehát ha egyszer kimegy a Room-ból akkor soha nem jön vissza. Tehát létrehozhatunk egy Outside Room Event-et aminek az Action-je az lesz hogy leveszi a pályáról az Object-et. Ez persze nem fog látványos változás okozni, mégis jobb az ilyen apróságokra odafigyelni.

Nyissuk meg GameMaker-ben az első játékom.gm81 fájlt. Az Object-ek közül válasszuk ki az obj_bullet-et és nyissuk meg a tulajdonságait. Itt egyenlőre nincsenek Event-ek, ezért létre kell hoznunk az Outside room eventet. Ehhez kattintsunk az Add Event gombra majd válasszuk az Other menüpontból az Outside room Event-et. (Ezt az Event-et már használtuk korábban az obj_player-nél)


A main1 fülről rendelünk egy Destroy Instance Action-t az Outside room Event-hez. Ez az Action mmegsemmisít egy adott Object-et.


Az Applies to résznél lehet kiválasztani hogy melyik Object-re legyen érvényes. (Self az az adott Object, ahol az Action van, Other az egy olyan Object-re vonatkozik amelyel éppen az adott Object ütközik, az Object: lehetőségnél ki lehet választani, hogy melyik Object-re vonatkozzon.)
Esetünkben a lövedéknek kell megsemmisülnie, ezért nem kell változtatnunk a beállításokat, csak kattintsunk az OK gombra.


Ha simán futtatjuk a játékot semmilyen változást nem fogunk észlelni. Azonban ha a játékot Debugger (hibakereső) módban indítjuk akkor láthatjuk a változást. Ehhez a sima futtatás helyett nyomjuk meg az F6 billentyűt. Amikor elindul a játék, a megszokott játékablak mellett megjelenik egy Debug Information nevű ablak is. A jövőben ezt fogjuk használni hibák kiszűréséhez. Számunkra most az Object-számláló rész lesz érdekes melyet az ablak alján találunk. Ez kiírja az adott játékban lévő összes Object számát. (Az Object-eket egyes helyeken Instance-nek hívjuk.) Amikor megnyomjuk a <Space> gombot keletkezik egy lövedék és az Instance-számlálónak az értéke egyel nagyobb lesz. Amikor azonban a lövedék kimegy a pályáról a számláló visszaugrik 1-re. 


Ha bármi problémád akad, vagy kérdésed van az Kapcsolatfelvétel oldalon megtalálod az elérhetőségeimet.

Itt letöltheted a példafájlt melyet elkészítettünk ebben a leckében.

Jó szorakozást a GameMaker-hez, a következő lecke hamarosan érkezik. 

Nincsenek megjegyzések:

Megjegyzés küldése