Eventy (udalosti)
V okamihu, keď je vyvolaný určitý event (udalosť) sa vykonajú jednotlivé akcie v nom umiestnené.
create event
Vyvolaný pri vytvorení inštancie objektu. Používa sa na nastavenie
rýchlosti a premenných inštancie.
destroy event
Vyvolaný pri zničení inštancie. Vhodný pre zmenu skóre či vytvorenie
iného objektu.
Alarm events
Pre každú inštanciu je k dispozícii 12 alarmov. Akcia umiestnené v tomto
evente sú vykonané po uplynutí počtu krokov zadaných v akcii SetAlarm (v
kombinácii s "room_speed * počet" možno previesť kroky na sekundy).
Step events
Akcia v tejto udalosti sú vykonávané každým krokom hry. Sem je vhodné
umiestniť akcie, ktoré je potrebné vykonávať postupne. Ak napríklad máte
objekt, ktorý nasleduje iný objekt, môžete tu meniť jeho smer. Buďte však
opatrní a neprežeňte to s akciami umiestnenými do tohto eventu -> hrozí
spomalenie hry.
Begin step: vykoná sa pred začiatkom ostatných udalostí.
End step: vykoná sa tesne pred vykreslením.
Collision events
Je vyvolaný, keď sú dve inštancie v kolízii (podľa nastavenia masky
Spritu).
Ak má objekt, s ktorým inštancie koliduje, zapnutú vlastnosť solid, potom
je inštancia stále vracaná späť (na miesto pred započatím kolízie.
Vyzerá to teda, akoby sa zastavila. Ak nie, inštancie sa nevracia (pokračuje
ďalej). Akcie sa vykonajú pri prvým vyvolanie kolízie a ďalej sa už
kolízie nekontroluje.
Pokiaľ ale do eventu neumiestnite žiadnej akcie, nestane sa nič, inštancie
sa ďalej normálne pohybuje aj v prípade, že objekt je solid.
Tento event je vhodný pre odrážanie inštancie od steny (kolízie s múrom
-> bounce) alebo pre zničenie objektov (pri zásahu strelou).
Keyboard events
V okamihu, keď hráč stlačí kláves, je tento event vyvolaný vo všetkých
inštanciách objektov.
Vyberiete kláves, pre ktorú chcete nastaviť určité akcie.
No key - vyvolaná v každom kroku, kedy nie je stlačené žiadne
tlačidlo
Any key - je naopak vyvolaná pri stlačení ktorejkoľvek
klávesy.
Ak stlačí hráč viac klávesov zároveň, zavolajú sa zároveň všetky
eventy pre tieto klávesy.
Mouse events
Udalosti myši sú vyvolané pri kolízii kurzora sa Sprit reprezentujúcim
inštanciu. Vyvolajú sa ak je splnená predchádzajúca podmienka a je
stlačené zadané tlačidlo (ľavé tlačítko myši, pravé tlačítko myši
alebo stredné tlačidlo). Možno tiež nastaviť, či sa akcia vykoná pri
stlačení alebo pri pustení tlačidla.
Pokiaľ chcete kontrolovať stlačenie tlačidla mimo inštanciu, použite event
zo submenu global mouse.
mouse enter - pri nabehnutí myšou do Spritu inštancie.
mouse leave - pri opustení Spritu inštancie myšou.
mouse wheel up - skrolovania kolieskom nahor
mouse wheel down - skrolovania kolieskom dole
Ďalej sa tu tiež nachádza niekoľko akcií pre Joystick.
other events
Niekoľko udalostí nehodiace sa do žiadnej s predošlých kategórií, ale
využiteľných v množstve hier.
- Outside room: Táto udalosť je vyvolaná pri kompletnom opustení Spritu inštancie z miestnosti. Napr. vhodný moment k jej zničeniu.
- Intersect boundary: Vyvolanie na pokraji konca miestnosti.
- Views: Tu sa nachádzajú udalosti užitočné, ak používate v miestnostiach views. Vyvolané podľa nastavenia - sprite kompletne mimo view, na pokraji konce view.
- Game štart: Táto udalosť sa vykoná pre všetky inštancie v prvej miestnosti hry (hneď po spustení a pred eventom room štart). Táto udalosť sa často používa v objekte nazvanom controller, ktorý slúži pre nastavenie hry (pozadia, hudba, načítanie nejakých dát ...)
- Game end: Vyvolanie pre všetky inštancie po skončení hry. Vhodné napríklad pre ukladanie dát.
- Room štart: Vyvolanie pre všetky inštancie potom, čo sa načíta nová miestnosť a po create eventoch.
- Room end: Pre všetky inštancie pri skončení miestnosti.
- No more lives: GM má zabudovaný systém pre životy (Premeny lives). Ak je hodnota tejto premennej menšia alebo rovná 0, je vyvolaná táto udalosť. Používa sa najčastejšie pre skončenie alebo reset hry.
- No more health - GM má zabudovaný systém pre zdravie (premenná health). Ak je hodnota tejto premennej menšia alebo rovná 0, je vyvolaná táto udalosť. Používa sa najčastejšie pre zmenšenie hodnoty životov alebo pre reštart hry.
- Animation end: Ak máte v inštancii nastavený sprite, ktorý obsahuje viac snímok (animácie). Snímky idú po sebe až do posledného a potom začnú odznova. A práve v ten moment, kedy sa má animácia zopakovať, je vyvolaný tento event. Používalo na zmenu animácie alebo pre zničenie objektu.
- End of path: Táto udalosť je vyvolaná v okamihu, keď inštancie idúce po zvolenej ceste dorazí na jej koniec.
- Close button: Vyvolanie, keď používateľ chce ukončiť hru pomocou krížika nachádzajúceho sa napravo hore v okne. Funguje len vtedy, keď v nastavení hry Global Game Settings v záložke Other odškrtnite Treat the close button as <Esc> key. (Pozn. Vykonajú sa iba akcie zadané v tomto evente, hra sa potom nevypne, pokiaľ túto akciu nepridáte)
- User defined: Tu je 16 udalostí, ktoré sa nikdy neuskutočnia, pokiaľ ich samy nezavoláte.
draw event
Tento event sa vykonáva v čase vykresľovanie hernej scény, ak má objekt
zapnutú viditeľnosť. Patrí sem typicky akcie zo záložky Draw, ktoré
vykresľujú text, obsah premenných, životy, ornamenty alebo sprity.
GM: Štúdio má ešte v sub-menu možnosti:
Draw GUI Event - slúši pre vykreslenie prvkov, ktoré nie sú
ovplyvnené zmenami veľkosti, alebo rotácia
Resize Event - udalosť sa spúšťa pri zmene veľkosti napr.
Prehliadača alebo okna (pozn. V tejto udalosti nemožno kresliť, pretože je
určená len pre zachytenie zmeny veľkosti plátna).
POZOR! Akonáhle do nejakého objektu vložíte Draw event,
Game Maker to v tú chvíľu chápe tak, že sa o vykresľovanie daného objektu
chcete starať sami. Typicky keď chcete vykresliť počet nábojov hráča a do
objektu hráč vložíte Draw event, prestane sa hráč vykresľovať. Riešenia
sú dve, buď sprite hráča dodatočne vykreslíte na jeho súradniciach alebo
si (podľa mňa jednoduchšie) vytvoríte objekt napr. HerniInfo a Draw event
vložíte tam (budete kresliť premennú hrac.naboje). Objekt samozrejme
nesmiete zabudnú vložiť do všetkých miestností, v ktorých sa majú
zobrazovať dané informácie.
V GM: Studio možno daný problém vyriešiť pomocou ikonky Draw self.
Poznámka: Kolízie sú závislé na Spritu, ktorý je zasociovaný s inštanciou.
Key Press events
Rovnaký ako Keyboard event s tým rozdielom, že tento je vyvolaný len raz,
pri stlačení zadanej klávesy. Užitočné pre akcie, čo chcete, aby sa
vykonali iba raz.
Key Release events
Rovnaký ako Keyboard event, s tým rozdielom, že tento je vyvolaný len raz,
po pustení zadanej klávesy. Užitočné pre akcie, čo chcete, aby sa vykonali
iba raz.