Bu karakteri kullandığımı varsayalım.
(kaynak: iconbug.com )
Bunun için çarpışma tespitini nasıl uygularsınız? Sınırlayıcı bir kutu kullanmak iyi bir yaklaşım gibi görünmemektedir, çünkü kuşun şekli bir kareye yakın değildir.
Görüntünün bölümlerini temsil eden nesnenin içinde bir tür dörtlü ağaç veri yapısına sahip olmayı düşünüyordum. Her yaprak ya false
(kuş dışındaki beyaz / saydam alanı kaplaması durumunda) ya da true
(kuşun gaga, göz vb. Bir bölgesini temsil etmesi durumunda) olabilir. Sonra bir şekilde kuşla çarpışma için sahnedeki tek engeli test edin .
Ama yaklaşımımdaki problemlerim:
- Dörtlü ağacın nasıl başlatılacağını bilmiyorum.
- Dört ağaç başlatıldıktan sonra, engel görüntünün koordinatları içinde olduğunda onu nasıl geçip kullanacağımdan emin değilim.
Kare olmayan karakterlerle çarpışma algılamayı nasıl yaparsınız?
LE: Gördüğüm diğer yaklaşım çoklu sınırlayıcı kutular kullanmaktı. Mesela gaga için bir ya da birkaç sınırlayıcı kutu, daha sonra da saç ya da kuyruk için bunlardan birkaçı olurdu. Ama sıkıcı olabilir. Bu benim durumumda geçerli bir yaklaşımsa, bu sınırlayıcı kutuları nasıl oluştururum? Programımda bunları kodlamam gerekeceğinden şüpheliyim.
LE2: Oldukça hassas çarpışmaları önemsiyorum. Tek bir sınırlayıcı kutunun veya dairenin en azından bu şekle nasıl yaklaşık olarak yaklaşabileceğini hayal edemiyorum, bu yüzden bu yaklaşım işe yaramayacak.