Anggap saya menggunakan karakter ini.
(sumber: iconbug.com )
Bagaimana Anda menerapkan deteksi tabrakan untuk itu? Menggunakan kotak pembatas tampaknya bukan perkiraan yang baik, karena bentuk burung itu tidak jauh dari kotak.
Saya berpikir memiliki semacam struktur data quad tree di dalam objek yang mewakili bagian dari gambar. Setiap daun bisa false
(dalam hal itu menutupi ruang putih / transparan di luar burung) atau true
(dalam hal itu mewakili area burung yaitu paruh, mata, dll). Kemudian, entah bagaimana, uji satu-satunya kendala di tempat kejadian untuk tabrakan dengan burung itu.
Tapi masalah saya dalam pendekatan saya adalah:
- Saya tidak tahu bagaimana menginisialisasi pohon quad.
- Setelah pohon quad diinisialisasi, saya tidak yakin bagaimana untuk melintasi & menggunakannya setelah kendala berada dalam koordinat gambar.
Bagaimana Anda akan melakukan deteksi tabrakan dengan karakter non-kuadrat?
LE: Pendekatan lain yang saya lihat adalah menggunakan beberapa kotak pembatas. Misalnya saya punya satu atau beberapa kotak untuk paruh, lalu beberapa untuk rambut atau ekor. Tapi itu bisa membosankan. Jika ini adalah pendekatan yang valid dalam kasus saya, bagaimana saya menghasilkan kotak pembatas itu? Saya ragu saya harus menyimpannya dalam program saya.
LE2: Saya peduli tentang tabrakan yang cukup tepat. Saya tidak bisa membayangkan bagaimana satu kotak atau lingkaran tunggal dapat setidaknya memperkirakan bentuk itu, sehingga pendekatan ini tidak akan berfungsi.