Autor Zpráva
pietro11
Profil
Ahoj,
potřeboval bych pomoct vytvořil jsem jednoduchouhru arkanoid ale mám problém.
Kulička se od objektu ne vždy odrazí. Zkoušel jsem to i s menší rychlostí ale i tak se kulička odrazí jen někdy, jindy objektem jednoduše prolítne a objekt zmizí. A za další ono to vypadá jako kdyby to tu podmínku totiž vyhodnotilo několikrát, vložil jsem si tam proměnou aby se přičetla 1 a ono to to přidá různý počet podle toho kolikrát to tu podmínku vyhodnotí.Poradíte mi někdo
tady je podmínka:
if (_root.obd1._visible == true){
for (i=1; i<_root.obd1._width; i++) {
if (_root.kulicka.hitTest(_root.obd1._x+i, _root.obd1._y, true)==true) {
_root.obd1._visible = false;
speedy= -speedy;n+=1;
}
else if (_root.kulicka.hitTest(_root.obd1._x+i, _root.obd1._y + _root.obd1._height, true)==true) {
_root.obd1._visible = false;
speedy= -speedy;n+=1;
}
}
}
Děkuji za odpověd...
Steve
Profil
Poradím ti nepoužívat metodu hitTest(), protože je závislá na aktuální frame-rate. Ideální řešení je zapojit do hry trochu matematiky a kolize si počítat sám. Většinou to je nejen spolehlivější, ale i rychlejší řešení (z hlediska rychlosti kódu).
pietro11
Profil
Steve:

Dekuji za odpověd.
A mohl by jsi mi prosimtě poradit nějak konkrétnějc?
Steve
Profil
No jednoduše a hlavně rychle se to dá vysvětlit na kolizi dvou koulí. Znáš jejich rozměry (poloměry) a znáš jejich pozice. Jednoduše vypočteš vzdálenost jejich středů (Pythagorova věta nebo funkce sin/cos) a porovnáš jí se součtem jejich poloměrů. Pokud jsou středy od sebe dál než je součet poloměrů, tak ke kolizi nedochází (to je myslím jasné). Analogicky (sice trochu složitěji, ale princip je stejný) budeš postupovat i u výpočtu kolize pro kouli s cihlou. Důležité je, že počítáš kolizi pro následující snímek, nikoliv pro ten aktuální (znáš rychlost a směr pohybu kuličky, takže můžeš spočítat na jakém místě se bude nacházet v následujícím snímku). Aktuální snímek tě už moc nezajímá, protože už je vykreslený a je trochu pozdě něco řešit - proto ten problém u hitTest, který kontroluje kolize v aktuálním snímku.

Pokud nemáš fantazii nebo dostatečné matematické znalosti (učivo základní školy a možná bude potřeba sáhnout i do znalostí ze střední školy), tak v téhle knížce je vše dosti podrobně popsáno.
pietro11
Profil
Steve:

Mockrát děkuju za odpověd s těma kuličkama jsem to pochopil, ale nevím jak to mám naprogramovat s obdélníkama nevím jak mám vyřešit rohy odélníků, při odrazu s kuličkou?

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: