Střelba

Na konci této lekce bychom si měli zastřílet! :) Například podobně jako v .swf ukázce (skok = klávesa O, střelba = klávesa P).

Nejprve zajistíme, aby střela neprocházela překážkou. Možností, jak toho dosáhnout je opět více, můžeme vytvořit nový klip, v ukázce je nazvaný vypln. Tento klip je tvořen vybarveným čtvercem o rozměrech 100x100 pixelů a jsou mu smazané hraniční úsečky. Instance tohoto klipu vložená do scény je pojmenovaná hit_area_1, umístěte ji do překážky, s klávesou SHIFT vyberte překážku i výplň a oba objekty seskupte v nabídce Modify - Group (Ctrl+G), tím se vytvoří jeden objekt, což bude šikovné pro další práci. Všechny ostatní překážky vytvořené v minulé lekci zatím smažeme (nebudou fungovat stejně).

Dále vytvoříme klip kulka (co nejjednodušší), jeho instance na scéně je pojmenovaná kula_1. Této instanci vložíme následující script (podle poznámek snad jasný):

onClipEvent(load)
{
if (_root.akce_1.otacime==1) rychlost = -10; //kulka leti doleva
if (_root.akce_1.otacime==2) rychlost=10; //rychlost pohybu kulky doprava
}


onClipEvent(enterFrame)
{_x+=rychlost;
// kolize se stenami
if(this._x < 0 && this._x > -50) // leva strana
removeMovieClip(this); //odstraneni tohoto (this) klipu
if(this._x > 800 && this._x < 850) // prava strana
removeMovieClip(this);
// kolize strel s kvadrem cislo 1
if(this.hitTest(_root.hit_area_1))
removeMovieClip(this);
//pro kolize s dalsimi kvadry je potreba pridat dalsi stejnou podminku pro _root.hit_area_1
}

Vlastní střílení potom začleníme do klipu akce_1 do příkazů pro panáka (třeba hned na začátek) do onClipEvent(enterFrame). Jak je vidět, ke střílení se použije klávesa P.

///////////////////
// Strileni hrace 1
//////////////////
if ((Key.isDown(80)) && (nedrzime_strelbu)) // jestlize zmackneme P, tak strelime
{
nedrzime_strelbu = 0; // drzime tlacitko pro strelbu
duplicateMovieClip(_root.kula_1, "kula_1"+k, k + 80); //vytvor kopii klipu kula_1, pojmenuj ji kula_11 (podle k) a umisti ji do vrstvy 81 (podle k)
setProperty("_root.kula_1"+k, _y, _root.panak1._y-16); //y souradnice kulky, potreba upravit podle umístění revolveru
if (otacime == 2) // jestlize jsme otoceni doprava
setProperty("_root.kula_1"+k, _x, _root.panak1._x + 30); //x souradnice kulky, potreba upravit
else // takze jsme otoceni doleva
setProperty("_root.kula_1"+k, _x, _root.panak1._x - 30);
k++; // pricteme do promenne K +1, ukladame zde, kolikata strela byla vystrelena
if (k >= 20) // jestlize vytvorime vice jak 20 strel, zacneme je prepisovat jimy samotnymi
k = 0; // vynulujeme K
}
else if (!Key.isDown(80)) // jestlize nedrzime P
nedrzime_strelbu = 1; // uz nedrzime tlacitko pro strelbu P




Úkoly (5 bodů):

Podle textu lekce nauč panáka střílet. Dále přidej další překážku - zkopíruj a vlož tu první, kopii potom rozbij (Modify - Ungroup) a přejmenuj výplň na hit_area_2. Přidej do scriptu pro kulku kontrolu i pro tuto překážku. (Zkuste vymyslet úpravu kódu tak, aby střela při otočení hráče také neměnila směr.)