Stavový automat III

Pokračujeme při práci se stavovým automatem na této úloze:

K předchozí úloze přidáme truhlu, která se na kliknutí otevírá a zavírá, kouzelnou hůlku – na klepnutí vyčaruje v truhle poklad, ale jen pokud je truhla zavřená. Je-li truhla zavřená a poklad v ní již je, hůlka ho zase odčaruje a truhla je při dalším otevření prázdná. Trpaslík dojde k truhle a pokud je truhla otevřená a je v ní poklad, kliknutím na trpaslíka si trpaslík poklad sebere – zežloutne a na další kliknutí zmizí ze scény a je konec hry.

Schéma pro rozšířený stavový automat vypadá takto:

Movieclipy klic_mc a dvere_mc zůstaly beze změny oproti předchozí části.

trpaslik_mc má přidané dva stavy s dvěma přechody do těchto stavů:

  • maZlato
  • konec

přibyl movieclip hulka_mc se dvěma stavy a dvěma přechody mezi nimi:

  • visi (počáteční stav)
  • trepe

nový je i movieclip truhla_mc s pěti stavy a sedmi přechody:

  • prazdnaZavrena (počáteční stav)
  • prazdnaOtevrena
  • zavrena
  • otevrena
  • zlatoPryc

Na hlavní časové ose teď máme dva snímky – první s trpaslíkem a celou úlohou, druhý jako „konec“.

Když se odehraje hra, časová osa se přesune na druhý snímek a tím je úloha ukončena.

ACTIONSCRIPT:

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ě:

 Na prvním snímku:

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

4

Na druhém snímku:

stop();

Posted

in

by

Tags: