Eventy (události)
V okamžiku, kdy je vyvolán určitý event (událost) se provedou jednotlivé akce v nem umístěné.
Create event
Vyvolán při vytvoření instance objektu. Používá se k nastavení rychlosti
a proměnných instance.
Destroy event
Vyvolán při zničení instance. Vhodný pro změnu skóre či vytvoření
jiného objektu.
Alarm events
Pro každou instanci je k dispozici 12 alarmů. Akce umístěné v tomto eventu
jsou provedeny po uplynutí počtu kroků zadaných v akci SetAlarm (v kombinaci
s "room_speed * počet" lze převést kroky na vteřiny).
Step events
Akce v této události jsou prováděné každým krokem hry. Sem je vhodné
umístit akce, které je třeba vykonávat postupně. Pokud například máte
objekt, který následuje jiný objekt, můžete zde měnit jeho směr. Buďte
však opatrní a nepřežeňte to s akcemi umístěnými do tohoto eventu ->
hrozí zpomalení hry.
Begin step: provede se před začátkem ostatních událostí.
End step: provede se těsně před vykreslením.
Collision events
Je vyvolán, když jsou dvě instance v kolizi (dle nastavení masky
spritu).
Má-li objekt, se kterým instance koliduje, zaškrtnutou vlastnost solid, pak
je instance stále vracena zpět (na místo před započatím kolize. Vypadá to
tedy, jakoby se zastavila. Pokud ne, instance se nevrací (pokračuje dál).
Akce se provedou při prvním vyvolání kolize a dále se již kolize
nekontroluje.
Pokud ale do eventu neumístíte žádné akce, nestane se nic, instance se dál
normálně pohybuje i v případě, že objekt je solid.
Tento event je vhodný pro odrážení instance od zdi (kolize se zdí ->
bounce) nebo pro zničení objektů (při zásahu střelou).
Keyboard events
V okamžiku, kdy hráč stiskne klávesu, je tento event vyvolán ve všech
instancích objektů.
Vyberete klávesu, pro kterou chcete nastavit určité akce.
No key - vyvolána v každém kroku, kdy není stisknuta žádná
klávesa
Any key - je naopak vyvolána při stisku kterékoli klávesy.
Pokud stiskne hráč více kláves zároveň, zavolají se zároveň všechny
eventy pro tyto klávesy.
Mouse events
Události myši jsou vyvolány při kolizi kurzoru se spritem reprezentujícím
instanci. Vyvolají se pokud je splněna předchozí podmínka a je stisknuto
zadané tlačítko (levé myšítko, pravé myšítko nebo prostřední
tlačítko). Lze také nastavit, zda se akce provede při stisku nebo při
puštění tlačítka.
Pokud chcete kontrolovat stisk tlačítka mimo instanci, použijte event ze
submenu global mouse.
mouse enter - při najetí myší do spritu instance.
mouse leave - při opuštění spritu instance myší.
mouse wheel up - skrolování kolečkem nahoru
mouse wheel down - skrolování kolečkem dolů
Dále se zde také nachází několik akcí pro Joystick.
Other events
Několik událostí nehodících se do žádné s předešlých kategorií, ale
využitelných ve spoustě her.
- Outside room : Tato událost je vyvolána při kompletním opuštění spritu instance z místnosti. Např. vhodný moment k jejímu zničení.
- Intersect boundary : Vyvolána na pokraji konce místnosti.
- Views : Zde se nacházejí události užitečné, pokud používáte v místnostech views. Vyvolány dle nastavení - sprite kompletně mimo view, na pokraji konce view.
- Game start : Tato událost se provede pro všechny instance v první místnosti hry (hned po spuštění a před eventem room start). Tato událost se často používá v objektu nazvaném controller, který slouží pro nastavení hry (pozadí, hudba, načítání nějakých dat...)
- Game end : Vyvolána pro všechny instance po skončení hry. Vhodné například pro ukládání dat.
- Room start : Vyvolána pro všechny instance poté, co se načte nová místnost a po create eventech.
- Room end : Pro všechny instance při skončení místnosti.
- No more lives : GM má zabudovaný systém pro životy (proměná lives). Pokud je hodnota této proměnné menší nebo rovna 0, je vyvolána tato událost. Používá se nejčastěji pro skončení nebo reset hry.
- No more health - GM má zabudovaný systém pro zdraví (proměnná health). Pokud je hodnota této proměnné menší nebo rovna 0, je vyvolána tato událost. Používá se nejčastěji pro zmenšení hodnoty životů nebo pro restart hry.
- Animation end : Pokud máte v instanci nastavený sprite, který obsahuje více snímků (animace). Snímky jdou po sobě až do posledního a pak začnou od znova. A právě v ten moment, kdy se má animace zopakovat, je vyvolán tento event. Používáno pro změnu animace nebo pro zničení objektu.
- End of path : Tato událost je vyvolána v okamžiku, kdy instance jdoucí po zvolené cestě dorazí na její konec.
- Close button : Vyvolán, když uživatel chce ukončit hru pomocí křížku nacházejícího se napravo nahoře v okně. Funguje pouze tehdy, když v nastavení hry Global Game Settings v záložce Other odškrtnete Treat the close button as <Esc> key. (Pozn. provedou se pouze akce zadané v tomto eventu, hra se poté nevypne, pokud tuto akci nepřidáte)
- User defined : Zde je 16 událostí, které se nikdy neprovedou, pokud je samy nezavoláte.
Draw event
Tento event se provádí v dobu vykreslování herní scény, pokud má objekt
zapnutou viditelnost. Patří sem typicky akce ze záložky Draw, které
vykreslují text, obsah proměnných, životy, ornamenty nebo sprity.
GM:Studio má ještě v sub-menu možnosti:
Draw GUI Event - slouší pro vykreslení prvků, které nejsou
ovlivněny změnami velikosti, nebo rotace
Resize Event - událost se spouští při změně velikosti např.
prohlížeče nebo okna (pozn. v této události nelze kreslit, protože je
určena pouze pro zachycení změny velikosti plátna).
POZOR! Jakmile do nějakého objektu vložíte Draw event,
Game Maker to v tu chvíli chápe tak, že se o vykreslování daného objektu
chcete starat sami. Typicky když chcete vykreslit počet nábojů hráče a do
objektu hráč vložíte Draw event, přestane se hráč vykreslovat. Řešení
jsou dvě, buď sprite hráče dodatečně vykreslíte na jeho souřadnicích
nebo si (podle mě jednodušší) vytvoříte objekt např. HerniInfo a Draw
event vložíte tam (budete kreslit proměnnou hrac.naboje). Objekt samozřejmě
nesmíte zapomenou vložit do všech místností, ve kterých se mají
zobrazovat dané informace.
V GM:Studio lze daný problém vyřešit pomocí ikonky Draw self.
Poznámka: Kolize jsou závislé na spritu, který je zasociovaný s instancí.
Key Press events
Stejný jako Keyboard event s tím rozdílem, že tento je vyvolán jen jednou,
při stisku zadané klávesy. Užitečné pro akce, co chcete, aby se provedly
pouze jednou.
Key Release events
Stejný jako Keyboard event, s tím rozdílem, že tento je vyvolán jen jednou,
po puštění zadané klávesy. Užitečné pro akce, co chcete, aby se provedly
pouze jednou.