« 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):
(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..