Momentálne vyrábam chabého vtáka a zmenil som hood iba obdĺžnikov k mojim vlastným obrázkom a podobne. Nezdá sa, že by som prišiel na to, ako to urobiť, keď vták (nepravidelný tvar) zasiahne obdĺžnik, zomrie. Neviem, ako kódovať kolíziu, keď to „je divný tvar.“ Tu je obrázok , Kreslím vtáka takto.
var img = document.getElementById("bird");
brush.drawImage(img, 20, this.y);
Pripojený je obrázok hry, vtáka a kódu.
odpovede:
0 pre odpoveď č. 1Musíte implementovať kolektory. Sú pripravené na použitie v herných strojoch, ako je Unity, ale ak to chcete implementovať sami, zvážte nasledujúce:
- Vytvorte kolízne komponenty pre svojho vtáka aSteny. Collidiers sú zjednodušené tvary, ktoré uľahčujú a zrýchľujú algoritmy detekcie kolízií vzhľadom na rýchlosť procesora. Napríklad pre vtáka to môže byť kruh okolo neho a obdĺžniky pre vaše steny.
- Počas udalosti Aktualizácia rámca skontrolujte, či máteohraničujúci kruh vtáčích priesečníkov so stenovými obdĺžnikmi. Je to jednoduchá matematika, v google nájdete vzorce pre priesečník kruhových obdĺžnikov.
- Ak sa zistí kolízia - váš vták by sa mal zrútiť)
To je to!
0 pre odpoveď č. 2
Tu je dobrá kniha na túto tému: Detekcia kolízie 2D hier: Úvod do kolíznej geometrie v hrách Autor: Thomas Schwarzl
Nájdete ho napr. tu http://www.amazon.de/2D-Game-Collision-Detection-introduction/dp/1479298123/ref=sr_1_1?ie=UTF8&qid=1448932508&sr=8-1&keywords=2d+collision
Ak dokážete zvládnuť pravouhlú kolíziu, skúste vyplniť tvar svojho komplexu postava s obdĺžnikmi a vyskúšajte každý z nich. Vo vašom prípade skúste použiť vtáčie kruh.