Eventy (události)

Ostatní jazyky GameMaker Základy 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.


 

  Aktivity (1)

Článek pro vás napsal Drakeman
Avatar
Autor se věnuje programování her v Game Makeru a Pythonu.

Jak se ti líbí článek?
Celkem (1 hlasů) :
55555


 



 

 

Komentáře
Zobrazit starší komentáře (4)

Avatar
Roxie
Neregistrovaný
Avatar
Roxie:

Ok, ale tady na to fakt nemůžu přijít a ani to nemůžu najít na devbooku....

 
Odpovědět 28.2.2013 17:32
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Roxie
TomBen:

Tohle mi nějak zmizelo ve změti příspěvků, ale pokud to je ještě
aktuální, napiš co přesně vlastně hledáš a co ti nefunguje.

Odpovědět 1.3.2013 12:11
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Roxies
Neregistrovaný
Avatar
Odpovídá na TomBen
Roxies:

Mám Game maker 8.0.Chtěla bych se zeptat jak to mám udělat aby když pustím klávesu aby se přestal dít event předtím? Nemůžu na to přijít...
:(

 
Odpovědět 17.3.2013 20:52
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Roxies
TomBen:

Eventy ( česky události ) se dějí tehdy, když nastanou podmínky,
které je spouštějí. Když pustíš klávesu, nastane event KeyRelease
a pokud máš v tomto eventu nějaké příkazy, tak se jednorázově
provedou ( např. zastaví pohyb něčeho nebo změní obrázek ).
Jsou eventy, které se spouštějí stále, např. Step nebo Draw.
Jde o to, co přesně chceš, aby se po klávese přestalo dít.

Odpovědět 17.3.2013 20:57
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Roxie
Neregistrovaný
Avatar
Odpovídá na TomBen
Roxie:

Potřebuju aby se mi přestala hýbat pálka po které přejíždí panáček, takže aby se po spuštění klávesy zastavila.

 
Odpovědět 17.3.2013 21:04
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Roxie
TomBen:

Poradil bych konkrétně, ale musel bych vidět,
jak to máš udělané - zdroják. ( .gmk )

Jinak bude nejlepší, když najdeš kód, který s pálkou hýbe
a přidáš k němu podmínku. Pak stačí v KeyRelease měnit
jen proměnnou v dané podmínce.

Odpovědět 17.3.2013 21:14
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Roxie
Neregistrovaný
Avatar
Odpovídá na TomBen
Roxie:

Omlouvám se ale nevím jak najít ten kód...

 
Odpovědět 17.3.2013 21:19
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Roxie
TomBen:

Tak dej gmk soubor na uložto a hoď sem odkaz.
Já se na to kouknu a řeknu ti co a jak.

Odpovědět 17.3.2013 21:34
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
adamhorvat
Člen
Avatar
adamhorvat:

Marián, stačí v Events -) Other -) No health
Pak Display message, následně End game (nedoporučuji) anebo Restart room/game

 
Odpovědět 4.12.2014 16:27
Avatar
Krnováček
Člen
Avatar
Krnováček:

Skvělé návody.Klobouk dolů. Mám takový nezvyklý dotaz. Možná, že jsem to přehlédl, ale jakým způsobem se dá udělat verze her jako TRIAL a FULL, včetně zadání určitého sériového čísla. Omlouvám se předem za to, pokud tento dotaz tady nepatří.

Odpovědět 29.9.2015 10:11
Učit se, učit se, učit se...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 14. Zobrazit vše