Autor Zpráva
MirdaH
Profil
Pokouším se vytvořit jednoduchou hru, kde se z nebe budou spouštět parašutisti a vy je musíte odstřelit, než dopadnou na zem. Bohužel se mi nedaří vytvořit funkci, která by po určité době zduplikovala původního parašutistu (ten je mimo scénu). Kód zatím vypadá takto:

onClipEvent (load) {
	function duplikace(arg)
	{
		_root.panacek.duplicateMovieClip("panacek"+arg, this.getNextHighestDepth());
		_root["panacek"+arg]._x = Math.random*600+40;
		_root["panacek"+arg]._y = -100;
		_root.pocet++;
	}
	setInterval(duplikace, 4000, _root.pocet);
}
onClipEvent (enterFrame) {
	for (i=1; i<=_root.pocet; i++)
	{
		if (!(_root["panacek"+i].hitTest(_root.zeme)))
		{
			_root["panacek"+i]._y += 3;
		}
	}
	//trace(_root.panacek2._y);
}


Po čtyřech sekundách (tak, jak udává interval) se zduplikuje _root.panacek jako _root.panacek1 a začne se snášet k zemi. Jenže padá dvojnásobnou rychlostí než by měl a po těch 4s zmizí a začne padat zase seshora (pod jménem panacek2, panacek3 atd.). Na tenhle problém jsem narazil dřív už několikrát, takže bych se docela rád dozvěděl, co dělám špatně. Děkuji za odpovědi.
weroro
Profil
Dosť dobre som nepochopil scenár tvojej hry.
Ja osobne, ak by som to chcel riešiť, čo najjednoduchšie by som si v prípade, že by som mal dáke levely a od toho by sa odvíjal aj počet padajúcich objektov, už na začiatku hry vygeneroval (z duplikoval) presný počet objektov (napr. 20). Nechal by som padať prvý a testoval by som dotyk so zemou a dotyk s myškou. V prípade, že by bol hitTest true, tak by sa objekt vrátil na pozíciu _y -100 a odtiaľ znovu padal. Ak by som chcel viac objektov na scéne, riešil by som to podmienkou vo funkcii onEnterFrame. Samozrejme, že v prvom rade, ale prepis tvoj stavajúci script na časovú os, lebo teraz ho máš umiestnený priamo na objekte (od toho by si si mal odvyknúť).
MirdaH
Profil
Máš pravdu, rozčlenit hru na levely a předem si naduplikovat požadovaný počet parašutistů bude asi jednodušší a koncept hry to nijak nenaruší, naopak ho to vylepší. Ale co když někdy narazím na případ (a jako že už jsem narazil), kde si nebude možné předem vytvořit přesný počet duplikátů, tj. budu potřebovat, aby se nepřetržitě tvořily nové? Je nějaký způsob, jak to zařídit?

Ještě k tomu scénáři - uprostřed je střílna s otočnou hlavní, kolem padají parašutisti a úkolem je sestřelit je dříve než dopadnou a zničí střílnu. Nic víc.
weroro
Profil
Ja osobne hry veľmi nerobím ale tu som spracoval tutoriál ako si jednu jednoduchú hru ktorá vlastne pracuje skoro na rovnakom princípe ako tá tvoja vytvoriť.

S tým, že by si niekedy potreboval aby sa ti tvorili nepretržite nové objekty, neviem odpovedať. Záleží od konkrétnej situácie lebo aj keby som ti sem hodil funkciu tak ju treba vždy prispôsobiť danej scéne a tiež vytvoriť veľmi veľa objektov a potom ich nevyužívať je z pohľadu optimalizácie blbosť. Vytvoriť a vymazať? načo? však vytvorím a použijem z novu aj keď sú prípady kedy je vymazanie nutné.

Ešte poznámka, že ak chceš duplikovať stále rovnaký objekt tak ho neduplikuj ale použi attachMovie.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0