Flash se využívá velmi často pro tvorbu různých her. Svědčí o tom i četnost vašich dotazů. Dnes tedy vytvoříme jednoduchou hru, v níž budete chytat padající objekty pomocí myši.

„Chytač“ padajících objektů

  • Nakreslete obdélníček, který bude sloužit jako „chytač“ padajících objektů. Převeďte ho na movie clip (označte ho a stiskněte klávesu F8). Označte ho a v panelu Properties napište do kolonky jeho jméno, v tomto případě chytac.
  • Otevřete panel Actions (klávesa F9). Vyberte kliknutím na „+“ Actions | Movie Clip Control | onClipEvent. V části Event nechte označeno Load. Následující akce tedy proběhnou po načtení clipu.
  • Vyberte Actions | Movie Clip Control | startDrag. Touto akcí přichytíte MC k myši.
  • Do pole Target napište název MC, který chcete přichytit. V tomto případě je to právě ten se kterým pracujete, napište tedy this.
  • Zaškrtněte políčko Expression.
  • Zaškrtněte políčko Lock mouse to center. Tím střed clipu přesunete na střed myši.
  • Když film nyní otestujete, bude se clip pohybovat souběžně s myší. Abyste omezili pohyb pouze na požadovanou přímku, musíte omezit možnost přetahování MC zaškrtnutím políčka Constrain to rectangle a vyplněním jednotlivých polí:
    • do pole L vepište, od jakého bodu zleva je možné movie clip přetahovat, v našem případě od nultého
    • do pole R vepište koncový bod vpravo (podle šířky jeviště), za který už nebude možno MC přetáhnout, zde 200
    • do pole T vepište, od kterého bodu ze shora bude možné clip přetahovat – napište ten nejnižší, zde 200
    • do pole B vepište nejníže položený bod, za který již nebude možné MC přetahovat (protože chceme docílit přetahování pouze po přímce, bude se hodnota shodovat s hodnotou pole T)

Padající objekt

Nakreslete malý objekt těsně nad jeviště. Převeďte ho na movie clip. Poklepáním na něj se přesuňte do jeho editace. Vytvořte na časové ose nový klíčový snímek (F6), který bude dál v čase a v něm přesuňte objekt na spodek jeviště tak, aby byl ve stejné výšce, ve které se bude pohybovat „chytač“. Převeďte snímky na movie tweening (označte jej a z nabídky pod pravým tlačítkem myši vyberte Create Motion Tween).

Nyní musíte donutit padající objekt, aby pokaždé, když dokončí pohyb, změnil polohu a padal odjinud, čímž vznikne efekt nepředvídatelnosti. Toho dosáhnete tak, že se MC přesune na novou, náhodně vypočítanou pozici pokaždé, když se „vrátí“ ke svému prvnímu snímku:

  • Otevřete panel Actions.
  • Označte první snímek movie clipu a vyberte Actions | Miscellaneous Actions | evaluate. Vložíte tak řádek pro novou akci. Do řádku Expression napište jméno proměnné, do které budete vkládat náhodné číslo (v tomto případě nahoda) a napište operátor přiřazení =. Vyberte Objects | Core | Math | Methods | random. Tím přiřadíte proměnné náhodnou hodnotu. Protože však funkce random generuje pouze čísla od 0 do 1, je nutné tuto hodnotu vynásobit šířkou jeviště, aby se MC umísťoval po celé jeho délce.
  • Vyberte Actions | Movie Clip Control | setProperty. Tato funkce nastavuje různé vlastnosti MC.
  • Z roletky Property vyberte _x(X Position).
  • Do pole Target napište cestu k movie clipu, kterému chcete vlastnost nastavit, v tomto případě je to právě ten, který nyní editujete, napište tedy this.
  • Do pole Value napište jméno proměnné, do které vkládáte náhodné hodnoty, v tomto případě nahoda
  • Zaškrtněte políčka Expression.

Testování, zda byl „padající“ objekt „chycen“

Nakonec je potřeba zjistit, zda byl padající objekt chycen, a pokud ano, zvýšit skóre. Budete tedy testovat, zda se „chytač“ dotýká padajícího objektu. Pokud se ho bude dotýkat, přičtete bod do proměnné score. Aby měl hráč nějakou kontrolu své úspěšnosti, vypíšete aktuální skóre do textového pole:

  • Přesuňte se na hlavní časovou osu.
  • Na jeviště umístěte textové pole, ve kterém se bude zobrazovat proměnná score. Vyberte nástroj text, klikněte na jeviště. V panelu Properties vyberte z roletky Dynamic text a do kolonky var napište score.
  • Poklepejte na padající objekt a označte jeho poslední snímek. Otevřete panel Actions.
  • Vyberte Actions | Conditions/Loops | if. Vyberte Objects | Movie | MovieClip | Methods | hit Test. Před text v kolonce Condition napište this, a do závorky _root.chytac. Vyberte Actions | Miscellaneous Actions | evaluate a do řádku Expression napište _root.score = _root.score +1. Tím Flashi řeknete, že pokud se bude v tomto snímku překrývat právě editovaný movie clip s objektem chytac, má do proměnné score přičíst bod.
  • Otestujte svůj výtvor.

Poznámka: Výběry z nabídek jsou psány pro Flash MX. Balíček se zdorojovým souborem si můžete stáhnout.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět