Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.

4. díl - TomBenova Akademie v Game Makeru: Události a ikony akcí

Ostatní jazyky GameMaker Základy TomBenova Akademie v Game Makeru: Události a ikony akcí

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.
TomBenova akademie v GameMakeru

Předchozí díly byly vlastně hlavně o efektech a grafice, k samotnému programování vůbec nedošlo. Dneska to napravím a budu se věnovat vytváření základních logických prvků potřebných ve hrách všeho druhu. Zkusíme si dneska v objektu nastavit nějaké činnosti.

Události a ikony akcí

Program v Game Makeru (podobně jako v jiných jazycích) určují dvě zásadní informace:

  • co se má stát (akce)
  • kdy se to má stát (události)

V okně objektu jsou vždy dva prázdné sloupce, kde v levém jde přidat události (events) a do pravého se hážou ikony akcí. Akce jsou tak přiřazeny k události, která jim říká, kdy se mají provést.

Některé zajímavé události

Snažte se zapamatovat si co nejvíc událostí podle jejich ikon a tyhle byste neměli vynechat.

  • Create – Když se hra spustí, pro každý objekt v místnosti se vytvoří tzv. instance (něco jako klony) tolikrát, kolikrát jste tam daný objekt naklikali. Tehdy právě nastane event create. Provede se jednou pro každou instanci. Kolikrát naklikáte objekt do místnosti, tolikrát ten create bude proveden.
  • Destroy – Nastane při zániku instance objektu, resp. těsně před zánikem. Když např. hráč porazí nepřítele, je potřeba instanci objektu Nepřítel zničit a při té události se třeba zvýší skóre. Čili zvýšení skóre se odehraje v události Destroy objektu Nepřítel.
  • Alarm – Lze nastavit čas, za který se událost spustí. Pomocí alarmu se dělá přesné načasování. Můžete jich mít 12 zároveň různě nastavených. Můžete je spouštět opakovaně. Dá se s tím dělat velice šikovné věci.
  • Step – Nastává pořád opakovaně za sebou po celou dobu hry a to velkým tempem. Vlastně nastane tolikrát za vteřinu, kolik je nastavena rychlost místnosti room_speed. Zacházejte s tím opatrně. Snadno tady docílíte strašlivého množství opakování nějakých zbytečných příkazů a můžete svoji hru zcela paralyzovat. Naštěstí chyby ve hře skoro nikdy nepoloží na lopatky samotný Game Maker. Zvlášť pokud použijete ladící režím (červená šipka).
  • Keyboard – Nastane při držení klávesy a opakuje se dokud je klávesa držena, zatímco KeyPress (stisk) a KeyRelease (uvolnění) nastávají pouze jednou.
  • Draw - Událost, která nastává tolikrát jako Step a během ní se v okně hry vykresluje obsah. Toto vykreslování musí obsahovat všechno, co chcete zobrazovat na obrazovce. Když například vykreslovací akci DrawText položíte do jiné události, nezobrazí se nic. Vykreslovací akce musíte prostě dávat sem. Když do Draw nic nedáte, GM automaticky vykresluje sprite přidružený k objektu. Když tam místo toho dáte třeba ten DrawText, sprite se nevykreslí, dokud nepřihodíte DrawSprite. Zkuste si pomocí eventu Draw a akce DrawSprite vykreslit jiný sprite než ten který je v objektu nastaven.

Události se používají celkem přirozeně a jsou blízké lidskému chápání, chce to jen trochu zvyku. Někdy je ale těžké si uvědomit kolikrát se něco provede a která událost nastane před kterou. V některém z pozdějších dílů o tom určitě ještě dáme řeč.

Akce

Game Maker má pro vás připraveno mnoho akcí, které jsou vhodné pro různé herní situace. Většina z nich je velice intuitivní. Když použijete ikonu Gravity, budou objekty padat dolů, případně do směru, který zvolíte rychlostí kterou chcete. Většina akcí má nějaké své nastavení, které se vám objeví, když ikonu položíte do události nebo když ji pak někdy znovu rozkliknete.

Knihovny s akcemi jsou přehledně uspořádány v záložkách okna každého objektu a aplikují se tažením na patřičné místo. Projděte si jejich názvy, zapamatujte si zhruba kde které jsou.

Příklad využití události a akce v praxi

Nastavíme objekt tak, aby se po stisku klávesy Enter ozvalo pípnutí.

Stisk klávesy Enter je událost a vybere se v seznamu událostí. Přehrání zvuku pípnutí je akce a najde se mezi ikonami pod označením PlaySound. Ikona PlaySound vás nechá vybrat jaký zvuk se vlastně bude přehrávat, takže potřebujete mít nějaký vhodný zvuk dostupný v resources-sounds.

Postup:

  • Nejprve vytvořte nový prázdný objekt bez jakéhokoliv sprite.
  • V objektu zadejte událost KeyRelease <Enter>.
    ( všimněte si, že se rozlišuje stisk klávesy a uvolnění klávesy )
  • Ikonu PlaySound odtáhněte ze záložky Main1 do pravého sloupce v okamžiku,
    kdy máte svoji událost označenu v levém sloupci.

A je vlastně hotovo. :-)

Tím je objekt naprogramován k tomu, aby po každém stisku Enter krátce pípnul. Umisťování ikon do vybraných událostí si zkuste, protože když vám nepůjde tohle, skončíte dřív, než jste doopravdy začali. Projděte si teď všechny nabízené události a všechny možné ikony v záložkách. Je toho fakt hodně, ale až se v Game Makeru pustíte do skutečné vlastní tvorby, ručím vám za to, že vám budou ještě chybět. Naštěstí si je můžete i sami přidávat. A to obojí – jak ikony, tak události.

Cvičení

Otevřete si hotovou ukázku Xylofon. Je vytvořena tak, že byste měli už teď být schopni pochopit, jak funguje. Velice důkladně si prostudujte a předělejte ji tak, aby se tóny ozývaly po stisku kláves na klávesnici. Klávesy si vyberte podle libosti, jen se vyhněte speciálním (shift, F1-F12, NumLock a podobně). Nebudu vám prozrazovat jak přesně to máte naklikat. Bojujte s tím, máte na to. Když bude opravdu nejhůř, vyjedou Blaničtí rytíři...totiž, chtěl jsem říct, poraďte se na fóru. :D A až tam budete něco psát, nezapomeňte, že pro většinu programátorů jsou tohle neskutečné banality, tak si sousloví "programoval jsem v Game Makeru" nechte na dobu, až budete skutečně něco umět a vyzbrojte se trpělivostí a skromností.

Mimochodem, ukázka Xylofon je zajímavá dvěma aspekty. Jednak ukazuje, že i několika jednoduchými akcemi lze vytvořit smysluplnou aplikaci a druhá věc, které byste si měli všimnout je, že cenou za prostoduché až otrocké naprogramování je spousta jednotvárného klikání. Velice mnoho soběpodobných ikon musíte naházet do příslušných událostí. Teď je to legrace, ale časem se právě tohle znechutí a stane se to dřinou. Zbavit se toho pak můžete jedině psaním kódu GML, který vás nakonec taky naučím.


 

Stáhnout

Staženo 302x (3.87 MB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

  Aktivity (1)

Článek pro vás napsal TomBen
Avatar
-

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


 



 

 

Komentáře

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.

Zatím nikdo nevložil komentář - buď první!