4. diel - TomBenova Akadémie v Game Makeru: Udalosti a ikony akcií
Predchádzajúce diely boli vlastne hlavne o efektoch a grafike, k samotnému programovanie vôbec nedošlo. Dneska to napravím a budem sa venovať vytváraniu základných logických prvkov potrebných v hrách všetkého druhu. Skúsime si dneska v objekte nastaviť nejakej činnosti.
Udalosti a ikony akcií
Program v Game Makeru (podobne ako v iných jazykoch) určujú dve zásadné informácie:
- čo sa má stať (akcie)
- kedy sa to má stať (udalosti)
V okne objekte sú vždy dva prázdne stĺpce, kde v ľavom ide pridať udalosti (events) a do pravého sa hádžu ikony akcií. Akcia sú tak priradené k udalosti, ktorá im hovorí, kedy sa majú vykonať.
Niektoré zaujímavé udalosti
Snažte sa zapamätať si čo najviac udalostí podľa ich ikon a tyhle by ste nemali vynechať.
- Create - Keď sa hra spustí, pre každý objekt v miestnosti sa vytvorí tzv. Inštancie (niečo ako klony) toľkokrát, koľkokrát ste tam daný objekt naklikali. Vtedy práve nastane event create. Vykoná sa raz pre každú inštanciu. Koľkokrát naklikáte objekt do miestnosti, toľkokrát ten create bude vykonaný.
- Destroy - Nastane pri zániku inštancie objektu, resp. tesne pred zánikom. Ak napr. Hráč porazí nepriateľa, je potreba inštanciu objektu Nepriateľ zničiť a pri tej udalosti sa treba zvýši skóre. Čiže zvýšenie skóre sa odohrá v udalosti Destroy objekte Nepriateľ.
- Alarm - Možno nastaviť čas, za ktorý sa udalosť spustí. Pomocou alarmu sa robí presné načasovanie. Môžete ich mať 12 zároveň rôzne nastavených. Môžete ich spúšťať opakovane. Dá sa s tým robiť veľmi šikovné veci.
- Step - Nastáva stále opakovane za sebou po celú dobu hry a to veľkým tempom. Vlastne nastane toľkokrát za sekundu, koľko je nastavená rýchlosť miestnosti room_speed. Zaobchádzajte s tým opatrne. Ľahko tu docielite strašného množstvo opakovaní nejakých zbytočných príkazov a môžete svoju hru úplne paralyzovať. Našťastie chyby v hre skoro nikdy nepoloží na lopatky samotný Game Maker. Zvlášť ak použijete ladiaci režim (červená šípka).
- Keyboard - Nastane pri držaní klávesy a opakuje sa kým je klávesa držaná, zatiaľ čo KeyPress (stisk) a KeyRelease (uvoľnenie) nastávajú iba raz.
- Draw - Udalosť, ktorá nastáva toľkokrát ako Step a počas nej sa v okne hry vykresľuje obsah. Toto vykresľovanie musí obsahovať všetko, čo chcete zobrazovať na obrazovke. Keď napríklad vykresľovací akciu DrawText položíte do inej udalosti, nezobrazí sa nič. Vykresľovací akcie musíte jednoducho dávať sem. Keď do Draw nič nedáte, GM automaticky vykresľuje sprite pridružený k objektu. Keď tam namiesto toho dáte potrebné ten DrawText, sprite sa nevykreslí, kým nepřihodíte DrawSprite. Skúste si pomocou eventu Draw a akcie DrawSprite vykresliť iný sprite ako ten ktorý je v objekte nastavený.
Udalosti sa používajú celkom prirodzene a sú blízke ľudskému chápaniu, chce to len trochu zvyku. Niekedy je ale ťažké si uvedomiť koľkokrát sa niečo vykoná a ktorá udalosť nastane pred ktorú. V niektorom z neskorších dielov o tom určite ešte dáme reč.
Akcie
Game Maker má pre vás pripravených mnoho akcií, ktoré sú vhodné pre rôzne herné situácie. Väčšina z nich je veľmi intuitívne. Keď použijete ikonu Gravity, budú objekty padať dole, prípadne do smeru, ktorý zvolíte rýchlosťou ktorú chcete. Väčšina akcií má nejaké svoje nastavenia, ktoré sa vám objavia, keď ikonu položíte do udalosti alebo keď ju potom niekedy znova rozkliknite.
Knižnice s akciami sú prehľadne usporiadané v záložkách okna každého objektu a aplikujú sa ťahaním na patričné miesto. Prejdite si ich názvy, zapamätajte si zhruba kde ktoré sú.
Príklad využitia udalosti a podujatia v praxi
Nastavíme objekt tak, aby sa po stlačení klávesy Enter ozvalo pípnutie.
Stlačenie klávesy Enter je udalosť a vyberie sa v zozname udalostí. Prehranie zvuku pípnutie je akcia a nájde sa medzi ikonami pod označením PlaySound. Ikona PlaySound vás nechá vybrať aký zvuk sa vlastne bude prehrávať, takže potrebujete mať nejaký vhodný zvuk dostupný v resources-sounds.
postup:
- Najprv vytvorte nový prázdny objekt bez akéhokoľvek sprite.
- V objekte zadajte udalosť KeyRelease <Enter>. (Všimnite si, že sa rozlišuje stlačenie klávesy a uvoľnenie klávesy)
- Ikonu PlaySound odtiahnite zo záložky Main1 do pravého stĺpca v okamihu, kedy máte svoju udalosť označenú v ľavom stĺpci.
A je vlastne hotovo.
Tým je objekt naprogramovaný k tomu, aby po každom stlačení Enter krátko raz zapípal. Umiestňovanie ikon do vybraných udalostí si skúste, pretože keď vám nepôjde toto, skončíte skôr, ako ste naozaj začali. Prejdite si teraz všetky ponúkané udalosti a všetky možné ikony v záložkách. Je toho fakt veľa, ale až sa v Game Makeru pustíte do skutočnej vlastnej tvorby, ručím vám za to, že vám budú ešte chýbať. Našťastie si ich môžete aj sami pridávať. A to oboje - ako ikony, tak udalosti.
Cvičenie
Otvorte si hotovú ukážku Xylofón. Je vytvorená tak, že by ste mali už teraz byť schopní pochopiť, ako funguje. Veľmi dôkladne si preštudujte a předělejte ju tak, aby sa tóny ozývali po stlačení klávesov na klávesnici. Klávesy si vyberte podľa ľubovôle, len sa vyhnite špeciálnym (shift, F1-F12, NumLock a podobne). Nebudem vám prezrádzať ako presne to máte naklikať. Bojujte s tým, máte na to. Keď bude naozaj najhoršie, vyjdú Blaničtí rytieri ... totiž, chcel som povedať, poraďte sa na fóre. : D A až tam budete niečo písať, nezabudnite, že pre väčšinu programátorov sú tohle neskutočné banality, tak si súslovie "programoval som v Game Makeru" nechajte na dobu, až budete skutočne niečo vedieť a vyzbrojte sa trpezlivosťou a skromnosťou.
Mimochodom, ukážka Xylofón je zaujímavá dvoma aspektmi. Jednak ukazuje, že aj niekoľkými jednoduchými akciami možno vytvoriť zmysluplnú aplikáciu a druhá vec, ktoré by ste si mali všimnúť je, že cenou za prostoduché až otrockej naprogramovanie je veľa jednotvárneho klikanie. Veľmi veľa soběpodobných ikon musíte nahádzať do príslušných udalostí. Teraz je to sranda, ale časom sa práve toto znechutí a stane sa to drinou. Zbaviť sa toho potom môžete jedine písaním kódu GML, ktorý vás nakoniec taky naučím.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 340x (3.87 MB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker