Dvojče

Pustíme se do tvorby druhého hráče (zatím nebudeme střílet). Pokud vše předešlé funguje, nebude to velký problém, mělo by to dopadnout asi jako v ukázce .swf.

Nejprve zkopírujte a vložte klip akce_1 a tuto kopii pojmenujte akce_2, bude to zdroj ovládání druhého hráče. Ve scriptu akce_2 je potřeba upravit všechny výskyty panak1 na panak2 (je možné v okně scriptů využít nabídku replace - nahrazení textu). Navíc bude potřeba umístit panak2 do druhé vrstvy, proto při duplikaci nezapomeňte upravit poslední parametr na 2: duplicateMovieClip(_root.panak_l, "panak2", 2);
Stejnou úpravu je potřeba provést i v dalších blocích scriptu při pohybech doleva a doprava.
Pro pohyb budeme používat samozřejmě jiné klávesy, jejich kódy jsou tyto, opravte je v jednotlivých blocích scriptu pro pohyb: E=69 - skok, S=83 - doleva, F=70 - doprava, Q=81 střelba
Pokud jste ponechali někde na konci scriptu obarvení prvního panáka, můžeme druhého vybarvit jinou barvou:
barva.setRGB(0x990000); // vytvorime cerveneho panaka

Teď už by se panak2 mohl pohybovat, ale při načtení zřejmě bude na souřadnicích, ze kterých začne padat a propadne nám podlahou. Nyní je potřeba doplnit scripty pro plošiny a překážky, zase to nebude problém. Například ve spodní plošině je script:

onClipEvent(enterFrame)
{
// Jestlize hrac 1 stoji na plosine
if(this.hitTest(_root.panak1) && ( _root.panak1._x > (_x - _width/2)) && ( _root.panak1._x < (_x + _width/2))) // jestlize stojime na plosine a neskaceme a nas STRED je nad plosinou
{
if (_root.akce_1.dopadl)
{_root.akce_1.dopadl = 0; // hrac uz dopadl, takze dopadl uvedeme na false, aby se vsechny tyto akce v tomto bloku provedly az zase pri pristim dopadu
_root.panak1._y = this._y - _root.panak1._height/2; // vyskova korekce hracovy pozice
_root.akce_1.vg = 0; // vynulujeme hracovu gravitacni rychlost dolu, címz jej zastavíme
_root.akce_1.muzeme_skocit = 1; // hrac muze znovu vyskocit, protoze stoji na pevne zemi
_root.akce_1.skaceme = 0; // dopadli jsme, takze uz neskaceme
}
_root.akce_1.stojime = 1; // jestlize panak stoji na plosine, tak akcim_1 predame informaci, ze stoji, tak at nepada
}
}

Stačí jen zkopírovat celý blok pro panak1 a vložit před poslední závorku, přepsat všude panak1 na panak2 a akce_1 na akce_2, takto by to mělo dopadnout:

onClipEvent(enterFrame)
{
// Jestlize hrac 1 stoji na plosine
if(this.hitTest(_root.panak1) && ( _root.panak1._x > (_x - _width/2)) && ( _root.panak1._x < (_x + _width/2))) // jestlize stojime na plosine a neskaceme a nas STRED je nad plosinou
{
if (_root.akce_1.dopadl)
{_root.akce_1.dopadl = 0; // hrac uz dopadl, takze dopadl uvedeme na false, aby se vsechny tyto akce v tomto bloku provedly az zase pri pristim dopadu
_root.panak1._y = this._y - _root.panak1._height/2; // vyskova korekce hracovy pozice
_root.akce_1.vg = 0; // vynulujeme hracovu gravitacni rychlost dolu, címz jej zastavíme
_root.akce_1.muzeme_skocit = 1; // hrac muze znovu vyskocit, protoze stoji na pevne zemi
_root.akce_1.skaceme = 0; // dopadli jsme, takze uz neskaceme
}
_root.akce_1.stojime = 1; // jestlize panak stoji na plosine, tak akcim_1 predame informaci, ze stoji, tak at nepada
}
//plosina pro panak2
if(this.hitTest(_root.panak2) && ( _root.panak2._x > (_x - _width/2)) && ( _root.panak2._x < (_x + _width/2))) // jestlize stojime na plosine a neskaceme a nas STRED je nad plosinou
{
if (_root.akce_2.dopadl)
{_root.akce_2.dopadl = 0; // hrac uz dopadl, takze dopadl uvedeme na false, aby se vsechny tyto akce v tomto bloku provedly az zase pri pristim dopadu
_root.panak2._y = this._y - _root.panak2._height/2; // vyskova korekce hracovy pozice
_root.akce_2.vg = 0; // vynulujeme hracovu gravitacni rychlost dolu, címz jej zastavíme
_root.akce_2.muzeme_skocit = 1; // hrac muze znovu vyskocit, protoze stoji na pevne zemi
_root.akce_2.skaceme = 0; // dopadli jsme, takze uz neskaceme
}
_root.akce_2.stojime = 1; // jestlize panak stoji na plosine, tak akce_2 predame informaci, ze stoji, tak at nepada
}
}

Úplně stejným způsobem je potřeba upravit scripty pro horní plošinu a potom pro překážku. Překážku musíte nejprve rozdělit na části v nabídce Modify - Ungroup a upravit všechny čtyři stěny, potom znovu spojit i s výplní do jednoho objektu (vybrat všechny části a Modify - Group). Upravenou překážku potom můžete zkopírovat a vložit.


Úkol (5 bodů):

Vytvořte druhého panáka podle textu lekce, má se umět pohybovat a narážet do překážek.