Stavový automat II

Využijeme stavový automat při vytváření této úlohy:

Cílem je vytvořit .swf, kde bude stojící trpaslík, dveře s klíčem, za dveřmi truhla. Trpaslík má úspěšně projít až k truhle. Když se klikne na trpaslíka, dojde ke dveřím. Pokud se na něj klikne znovu, vrátí se zpět na své původní místo. Dveře je tedy potřeba předtím odemknout klíčem. Kliknutí na klíč spustí animaci klíče – klíč se zatřepe, zmizí z rámečku, objeví se trpaslíkovi v ruce, trpaslík odemkne a vstoupí do místnosti a dveře se za ním zavřou.

Nejprve je třeba si ujasnit, jaké stavy a přechody využijeme, čehož nejlépe docílíme, pokud si nakreslíme schéma (stavový diagram):

Nejprve začneme s vytvářením pozadí a podkladu:

Pak se pustíme do samotné práce na moveiclipech – podle stavového diagramu. Na časové ose rozdělíme vrstvy na grafiku, názvy jednotlivých sekcí Label (návěstí) a AS (actionscript). Připravíme si jednotlivé klidové stavy (na každém z nich se časová osa zastaví na stopce) a přechody mezi nimi:

Neprve dveře – movieclip dvere (instance dvere_mc):

trpaslik_mc:

klic_mc:

Actionsript uvnitř MovieClipů:

Na prvním snímku(v prvním stavu)

var stav:String; //je třeba vytvořit proměnnou, která se bude v průběhu přehrávání swf měnit 
                 //a tak můžeme poznat, v jakém stavu se zrovna MovieClip nachází. Vytvoříme proměnnou stav, která je textového typu string.
stav="stoji"; //proměnná má na začátku hodnotu "stojí". Hodnotu proměnné stav budeme měnit v každém dalším stavu.
stop(); //v každém stavu je třeba MovieClip zastavit, jeho posun se bude ovládat z vnějšku

V dalších stavech

1

Na začátku přechodové animace

2

Na konci přechodové animace

3

Actionsript na hlavní scéně:

Ovládání děje pomocí podmínek:

5

 


Posted

in

by

Tags: