Arkanoid

Pokud jste v prvních lekcích zvládli základní tři kroky tvorby her v Game Makeru, tj. sprites, objekty (a jejich události s příslušnými akcemi) a místnosti, potom už následující lekce nebudou tak těžké. Při tvorbě dalších her budeme postupně přidávat využití dalších událostí a akcí a zároveň se už můžete inspirovat řadou her, které jsou k dispozici na Internetu od vašich předchůdců. Zatím ale hledejte jen hry bez skriptů (kousků zdrojových kódů programovacího jazyka), tvořené "ikonkami" (nástroji z panelů GM). V této lekci vyzkoušíme hru typu arkanoid, pomocí pálky budeme odrážet míček tak, abychom bořili zeď z cihliček a zasáhli "zlatou" cihličku, která nám otevře další místnost. Na začátku hry máte tři životy, pokud vám míček "propadne", jeden život ztratíte. Než se pustíte to práce, můžete si pustit ukázku vytvořenou podle lekce, vsadím se, že budete chtít udělat lepší:-)
Další inspiraci pro vylepšení, bonusy apod. můžete hledat na různých herních stránkách, třeba na hry.net.


Sprites

Z obrázku vidíte, že jsem použil obrázky pro míček, pálku, dva různé typy cihel a "zlatou" cihlu. Také si můžete přidat zvuky nebo obrázek pro pozadí místnosti, to vše hru zpestří. Určitě můžete všechny obrázky zvládnout lépe než já:-) , nebo přidat další druh cihly s jiným počtem bodů, prostě fantazii a tvořivosti se v Game Makeru meze nekladou:-)



Zatímco obrázky určují vzhled vaší hry, bez objektů a hlavně jejich činnosti by vaše hra prostě nefungovala (přesto, že tato část není při hraní "viditelná", jak kdosi napsal - důležité je to, co není očím viditelné:-) ).

Objekty

Seznam objektů bude stejný jako seznam spritů, místo dlouhého popisování by měl stačit stručný přehled jejich událostí a akcí, přičemž ty nově použité budou vysvětlené (jako by to profesionální gambleři potřebovali:-) ).

zed - nezapomeňte zatrhnout Solid, aby se od ní mohl odrážet míček, nic víc není potřeba

palka - taky musí mít zatrženo Solid, aby se od ní odrážel míček
událostakcepoznámka
Create nastavení 3 životů, záložka score
- zobrazení počtu životů, záložka score
Keyboard - Left změna první souřadnice znamená pohyb ve vodorovném směru (po ose x, kdo už znáte systém souřadnic), záporná změna = pohyb doleva, záložka move, nezapomeňte zatrhnout relative
Keyboard - Right změna první souřadnice znamená pohyb ve vodorovném směru, kladná změna = pohyb doprava, záložka move, nezapomeňte zatrhnout relative
Collision (se zdí) čtvereček uprostřed, tedy žádný směr = zastavit
Other - No more lives vypsání zprávy (třeba GAME OVER..)
zobrazení tabulky rekordů (možno volit font, barvy...)
restart the game:-), záložka main2
Pro pohyb pálky pomocí myši můžete použít událost Step:
Step při každém "kroku" hry skoč na pozici s x-ovou souřadnicí stejnou jako má myš a y-ovou 460 (počítáno shora)

micek - něco je stejné jako v minulé hře, pro jistotu ale ještě do přehledu zahrnu všechno
událostakcepoznámka
Create počáteční směr pohybu a rychlost (šikmo dolů)
Collision (se zdí i s pálkou) odraz od "solidního" objektu
Other - Outside Room ("opustí" místnost) zmenšení počtu životů, záložka score, hodnota -1, zatrhnout relative
skok na startovní pozici, záložka move, že:-)

Pokud máte pálku a míček, můžete začít "pinkat" :-) Vytvořte si jednoduchou místnost a vyzkoušejte, jestli vše zatím funguje tak, jak má. Body ale můžete zhískávat teprve až přidáme cihly (akce jsou pro oba typy stejné):

cihla, cihla2 - při kolizí s míčkem dojde ke "zničení" cihly a přičtení bodu ke skore
událostakcepoznámka
Collision (s míčkem) "zničení" cihly ("zmizí"), záložka main1
přidání bodu, záložku známe:-)


Pokud už máme, nebo si teď připravíme místnost, můžeme začít hrát - počítají se nám body, můžeme ztratit život, všechno ale stále v jedné místnosti, nastal čas přidat další:-)

Next room - příkazy IF, ELSE

Přidat novou místnost jako takovou není problém, prostě použijeme opět známé Create a room a místnost vytvoříme. Podstatnější ale je, jak se do této nové místnosti dostat, jak ji zobrazit.
Možností je povícero, my využijeme kolize cihličky (objektu) zlata s míčkem. Na obrázku vidíte všechny akce pro tuto kolizi, první dvě jsou stejné jako u ostatních cihliček - Destroy a zvýšení skore.
Další část obsahuje příkazy IF (jestliže) a ELSE (jinak), které se používají ve všech programovacích jazycích.
V našem případě je v první části řečeno (zapsáno) - jestliže existuje další místnost, skoč do další místnosti, obě použité ikonky jsou na záložce main1.
Pokud hráč dokázal projít všemi nástrahami a neexistuje další místnost, následuje část ELSE (jinak) (na záložce control), neboli, pokud již neexistuje další místnost, potom vypíšeme highscore a restartujeme hru. Aby bylo jasné, které všechny příkazy se mají vykonat, pokud místnost neexistuje, musí se uzavřít do bloku mezi značky Start of a block a End of a block, obě najdete na záložce control.
Za příkazy IF a ELSE může být jen jeden příkaz, nebo víc příkazů uzavřených do bloku, kdyby v našem případě příkazy za ELSE nebyly uzavřené do bloku, potom by se po skončení hry jen zobrazilo highscore, zato restartování by proběhlo při každé kolizi míčku se "zlatou" cihlou.

Takže jsme programovali - jako v jiných programovacích jazycích jsme použili příkazy IF a ELSE, jestli jsme je vložili pomocí ikonek z nabídek nebo pomocí písmenek z klávesnice :-) to si myslím zas tak zásadní rozdíl není:-)


Úkoly:

Vytvořte hru podle lekce a obohaťte ji vlastní tvořivostí:-)