Dnes konečně zabředneme do zákoutí tvorby flashových her a podíváme se nejdříve na základní postup před samotným programováním hry a poté již něco vytvoříme.
Úvod do tvorby flashových her
Při tvorbě hry je obecně nejdůležitější detailně propracovat děj a scénář samotné hry s návazností na výsledné provedení. U flashových her se většinou můžeme setkat s pravým opakem, totiž neúmyslně infantilně stupidním dějem. Výjimku tvoří konverze amigových a podobných her se statusem „klasika svého žánru“ od všemožných Arkanoidů, Tetrisů a Packmanů.
Hned na úvod je nutné přiznat tvrdou realitu, real-time multiplayer hry s flashem v současnosti nemůžeme vytvářet, protože přenos dat po internetu z flashe by byl nepoměrně větší než u běžných multiplayer internetových her – i při sebelepší stavbě programu bychom stále museli veškeré prostředí přestavovat každou sekundu a mít jej tedy plně ovlivnitelné příchozími daty a to si můžeme dovolit maximálně v případě turn-based her, kdy uživatel čeká než odehraje soupeř a nemusí přitom sledovat jeho metodiku.
Námět a scénář hry
Vrhněme se tedy na naši vlastní hru bez zbytečných okolků – začneme stručným popisem toho, jak by měla fungovat a co by se v ní mělo hrát. Podíváme se na nejjednodušší ze všech žánrů, totiž akční střílečku. Hráč by v ní měl sledovat objevující se tančící kostičky a rozbalovat je. Hra bude probíhat tak dlouho, dokud jich 5 nemine. Děj můžeme nyní odvodit lehce, v rámci tréninku skládání origami cvičíme postup přímo opačný, totiž rozbalování hotových skládaček, v tomto případě krabiček.
Technické řešení hry
Další fáze vývoje hry je rozvrhnutí jejích součástí a systematika následné realizace. My budeme mít hlavní obrazovku s menu hra, autor, děj a konec. Dále samotnou hru, kdy vytvoříme jeden movie klip, v němž se budou objevovat na předem daných místech kostičky a tento klip bude rotovat pořád dokola. Při tomto movie klipu budeme počítat spolu s každou objevující se kostičkou mínus jeden život, který se natrvalo připočte až v na dalším počítaném snímku, pokud kostička nebyla rozbalena. Souběžně s tím budeme počítat rozbalené kostičky. Připravíme si pak rovněž obrazovku s vyhodnocením hry a výstupem do hlavního menu. Obrazovky autor (kdo hru vytvořil), děj (o čem hra je) a konec (konec hry) jsou jednoduché. Pojďme začít tvořit jednotlivé části hry …
Úvodní obrazovka hry
Nejprve si nastavíme vlastnosti našeho filmu, tj. velikost scény a barvu pozadí, prvky, které ovlivní veškerou naši další grafickou tvorbu. V našich příkladech uvidíte práci s klipem o rozlišení 640 x 480 pixelů a lehce šedém pozadí. Dalším základním krokem při tvorbě hry je vytvoření několika základních vrstev pro lepší správu celého snímku. Tato struktura by se měla opakovat ve všech scénách, my použijeme scénu pouze jednu. Základní rozvržení vrstev a nastavení snímku uvidíte z následujícího obrázku, ale pro lepší orientaci uvedu, že jedna vrstva slouží k ukládání veškerých akcí, další k popiskům jednotlivých snímků a poslední je vrstva hlavních objektů snímku, kde prozatím máme uložené pouze herní logo. V dalších vrstvách se poté animuje přílet jednotlivých položek menu. Položky menu vytvoříme jako klasické buttony a naskládáme je na scénu. Pro zarovnání na jednu stranu použijeme klasickou volbu, označíme všechny položky a pravým tlačítkem navolíme panels a align, kde zvolíme volbu vlevo nahoře pro zarovnání levým okrajem. Jedinou odlišností od stávajícího popisu je položka menu děj, která se jmenuje intro. A to z toho důvodu, abychom lépe nastínili, že půjde o animovaný text děje hry a také abychom nemuseli pro menu používat český font, nebo k anglickému pracně dolepovat samostatné háčky. Tento problém odpadá při správném nastavení u nové verze flashe, se kterou zatím nepracujeme.
Úvodní animace menu
V předcházejícím náhledu jste mohli vidět situaci před úvodní animací menu. Při té klasickým motion tweeningem přiletí z levé strany položky menu. Po tomto objevení se na posledním snímku animace objeví v panelu akce příkaz stop(); pro zastavení přehrávání. Následuje pojmenování klíčového snímku menu pro další odkazování v průběhu tvorby. Pokud tuto animaci chceme přehrát při každém objevení menu, pojmenujeme si jako menu první snímek, stačí-li nám pouze finální stav animace menu, můžeme si jako snímek manu označit až poslední, v případě našeho dalšího náhledu desátý snímek na scéně.
Intro
Tvorbu samotné hry si záměrně necháme až na konec, i když většinou je tomu právě naopak. Výjimku může tvoři právě intro, čili úvodní animace s navozením atmosféry hry, které v případě přílišné grafické náročnosti může zabrat více času než samotná hra. To není náš případ, my intro vytvoříme pomocí animování textu s popisem hry na obrazovce. Protože návazností na základní menu se budeme zabývat příště, zatím nám postačí, když celé intro provedeme v separátních snímcích.
Celé to provedeme nanejvýš lišácky – totiž pod naše logo hry umístíme obdélník v barvě pozadí do zvláštní vrstvy. Když k němu poté text, který bude rolovat po obrazovce, dojede, jakoby se před logem ztratí a nebude potom rušivě pod ním vyčuhovat. Aby náš text stihl přečíst opravdu každý, použijeme dalšího osvědčeného fíglu, do dvou jeho míst při animování vložíme akci stop a tlačítko pokračovat, na které když se klikne, tak se opět spustí přehrávání snímku. Výslednou stavbu si opět můžeme prohlédnout na náhledu.
Autor
Tvorba osobního popisu autora hry je banalita, stačí vytvořit nový snímek a vložit do něj text. Pokud chceme uvádět emailovou adresu, můžeme ji vložit formou tlačítka, kterému vytvoříme animaci pro akci po najetí kursoru myši na něj. Takovéto tlačítko pak bude mít za cíl svého getURL klasické HTML volání emailu:
mailto:adresa@adresa.cz?subject=jmenozpravy

Položku Konec zatím složitě řešit nebudeme vzhledem k tomu, že si příště ukážeme základní možnosti ovládání flashového okna a také případy, kdy by tyto funkce nefungovaly. Právě pro ně tedy vytvoříme pod položku konec rozlučkovou animaci hry, která se spustí. Při ní například můžeme zanimovat logo tak, aby se několikrát otočilo a přitom zvětšilo přes celou obrazovku a zablikalo.
Příště si ukážeme, jak efektně navodit přechod z menu do jeho dalších obrazovek a zpět, plně grafický preloader hry pro webovou verzi a ovládání okna flash – od jeho maximalizace na fullscreen až po konečné ukončení s návazností na dotázání. Dále si navrhneme řešení hry formou proměnných a v přespříštím pokračování díky tomu již dokončíme celou naši hru!