« Előző oldal- - - ^Tartalom^- - - Következő oldal »

23. fejezet


Szkriptek

A Game Makernek van egy beépített programnyelve. Ha már jobban megismerted a Game Makert, és teljesen ki akarod használni a benne rejlő lehetőségeket, akkor el kell kezdened tanulni ezt a nyelvet. Két lehetőség van a nyelv használatára. Először is tudsz szkripteket írni. Ezek kódok, amiknek nevet adsz. Megjelennek az erőforrások listájában, elmentheted és betöltheted őket. A másik lehetőség, hogy egy kód akciót adsz egy eseményhez, és ide írsz egy pársoros programocskát. A kód akciók hozzáadása úgy működik, mint a szkriptek írása, kivéve két dolgot. A kód akcióknak nincs nevük és nem tudnak argumentumokat használni. És van egy már ismert mező az ablakban, ahol megadhatod, hogy a kód melyik objektumra vonatkozik. Egyébként ugyanúgy kell írnod a kódot, mintha szkriptet írnál. A továbbiakban ebben a fejezetben a szkriptekre koncentrálunk.

Ahogy már említettük, a szkript egy pár soros program a beépített programnyelven (GML) írva, ami egy bizonyos feladatot hajt végre. A szkriptek használhatnak bemenő változókat, amiket argumentumoknak neveznek (néha paramétereknek). Egy szkript végrehajtásához bármely eseményből használható a szkript akció, vagy használható kód. A szkript akcióban meghatározhatod a végrehajtandó szkriptet és maximum öt argumentumot. A szkriptet kódon belül ugyanúgy lehet használni, ahogy egy Game Maker függvényt is meghívsz. Ezesetben 16 argumentumot használhatsz. A szkriptek visszatérhetnek egy értékkel. Ez gyakran számolási (matematikai) eljárások készítésére használt. A return kulcsszó használható erre, vagyis a szkriptől való kilépésre egy számított értékkel. Ezután a kulcsszó után a kód többi része nem kerül végrehajtásra! Ha a szkript valamilyen értéket ad vissza, függvényként is használható, amikor más akcióknak határoz meg értékeket.

Szkript hozzáadásához válaszd az Add script menüpontot az Add menüből. A következő ablak ugrik elő (itt a példában már be lett gépelve egy rövid programkód, és nevet is kapott):

A szkript szerkesztőablaka

(Jelen esetben ez a beépített szkript szerkesztő. A Preferences menüben megadható külső szerkesztő is.) A jobb felső sarokban a szkript nevét lehet megadni. Van egy szerkesztőablak, ahová begépelheted a szkriptet. Alul egy lista mutatja az összes függvényt, beépített változót és állandót. Ez segít megtalálni azt, amelyre szükséged van, csak kattints kettőt valamelyiken a hozzáadáshoz (vagy használd a [Ctrl]+P gombokat). A lista megjelenítése kikapcsolható a Preferences menüben. A szerkesztőnek számos hasznos jellemzője van, sokuk gombokon keresztül használható (néhány további parancs jobb egérkattintással érhető el):

- Többszöri visszavonás és ismételt végrehajtás, mindkettő gombnyomásonként vagy csoportokban (beállítható a Preferences menüben)
- Automatikus sorbehúzás az előző sorhoz (beállítható a Preferences menüben)
- Intelligens tabulálás az első nem üres helyig az előző sorban (beállítható a Preferences menüben)
- A [Ctrl]+I használható a kiválasztott sorok behúzásához, és [Shift]+[Ctrl]+I a kiválasztott sorok visszahúzásához
- Kivágás (Cut) és beillesztés (Paste) lehetősége
- Szöveg keresésének (Search) és másikkal való kicserélésének (Replace) lehetősége
- A [Ctrl]+fel és le nyíl, page up vagy page down gomb használható a kurzorelmozdulás nélküli görgetéshez
- Az F4 lenyomásával nyitható meg az a szkript vagy erőforrás, melynek neve a kurzor helyén van (kód akcióban nem működik, csak a szkriptekben)
- Lehetőség a szkript mentésére és betöltésére szöveges állományként

Végül van egy gomb a szkript hibaellenőrzésére. Itt nem minden kerül ellenőrzésre, csak a nyelvtani helyesség, illetve a használt függvények létezése.

Ahogy már valószínűleg észrevetted, a szöveg egy része színes. A szövegszerkesztő ismeri a létező objektumokat, beépített változókat és függvényeket stb. A színkiemelés segít elkerülni a hibákat. Azzonal látszik, ha elírtál egy nevet, vagy ha egy kulcsszót használtál változóként. Ámbár a színkiemelés kicsit lassú. A File menü Preferences pontjában ki és bekapcsolhatod ezt a funkciót. Itt a különböző összetevők színét is megváltoztathatod, vagy éppen a használt betűtípust. (Ha valami elromlik a színkódolással, nyomd le kétszer az F12 gombot a ki és bekapcsolásához.)

A szkriptek nagyon hasznosak, nagymértékben kiterjesztik a Game Maker lehetőségeit, ez megköveteli, hogy figyelmesen dolgozd ki a ezeket. A szkripteket könyvtárakban tárolhatod és hozzáadhatod a játékhoz. Egy könyvtár beolvasásához használd a File menü Import scripts parancsát. Hogy a szkripteket könyvtár formában elmentsd, használd az Export scripts parancsot. A szkriptkönyvtárak egyszerű szöveges fájlok (a kiterjesztésük *.gml). Közvetlenül ne szerkeszd őket, mert sajátos szerkezetük van.

A szkript írása közben könnyű hibázni. Mindig ellenőrizd a szkriptet a megfelelő gomb lenyomásával (Check the script for syntax errors). Ha valami nincs rendben, a végrehajtáskor hibaüzenetet kapsz a hiba típusával és helyével. Néha az "Unexpected error occurred during the game" (Váratlan hiba történt a játék közben) üzenet bukkan fel. Ez azt jelenti, hogy a Windowsban vagy a hardverben történt valami hiba. Ennek oka gyakran végtelen önhívás (függvényeknél), memóriahiány vagy valamelyik alkatrész, illesztőprogram (driver) vagy firmware (alkatrésszel egybeépített célprogram) elégtelensége. Általánosságban szólva, ezeket a hibákat a Game Maker környezeten kívüli problémák okozzák.
Ha alaposabban akarod ellenőrizni a dolgokat, futtasd a játékot hibakereső (debug) módban. Ekkor egy ablak ugrik elő, ahol néhány információt találsz a játékról. A Run menüben szüneteltetheted a játékot (pause), futtathatod lépésről lépésre és meg is állíthatod. Az Add gombot használva valamilyen kifejezést gépelhetsz be, aminek az értéke a játék minden lépésében kiíródik. Így ellenőrizheted hogy a játék helyesen működik-e. Figyelemmel kísérhetsz számos kifejezést, elmentheted későbbi felhasználásra (pl. amikor kijavítod a hibákat). A Tools menü elemei segítségével megnézhetsz egy felsorolást a játékban levő összes példányról (Show Instances), megnézheted a legfontosabb globális változókat (Show Global Variables), és egy példány helyi változóit (Show Local Variables), amihez az objektum nevét, vagy egy példány azonosítószámát (id) kell megadnod. Megnézheted a kódokból a show_debug_message(szoveg) függvény használatával küldött üzeneteket (Show Messages). Végül kiadhatsz parancsokat (Execute Code), és megváltoztathatod a játék sebességét (Set Speed). Ha bonyolult játékokat készítesz, akkor tényleg tudnod kell, hogyan használd a hibakereső mód lehetőségeit..