Припустимо, я використовую цього персонажа.
(джерело: iconbug.com )
Як би ви реалізували для нього виявлення зіткнень? Використання обмежувального поля не здається гарним наближенням, оскільки форма птаха ніде не знаходиться в квадраті.
Я думав мати якусь структуру даних квадратичного дерева всередині об’єкта, який представляє частини зображення. Кожен листочок може бути або false
(якщо він покриває білий / прозорий простір поза птахом), або true
(у випадку, якщо він являє собою ділянку птаха, тобто дзьоб, око тощо). Тоді якось випробуй єдину перешкоду на сцені на зіткнення з птахом.
Але мої проблеми в моєму підході:
- Я не знаю, як ініціалізувати квадратичне дерево.
- Після ініціалізації квадратичного дерева я не знаю, як його перейти та використати, коли перешкода опиниться в межах координат зображення.
Як би ви зробили виявлення зіткнень з неквартальними персонажами?
ЛЕ: Інший підхід, який я бачив, - це використання декількох обмежувальних коробок. Наприклад, я мав би одну або кілька обмежувальних коробок для дзьоба, потім кілька - для волосся або хвоста. Але це може набриднути. Якщо в моєму випадку це правильний підхід, то як би я створив ці обмежувальні поля? Я сумніваюся, що мені доведеться їх чітко кодувати у своїй програмі.
LE2: Я дбаю про досить точні зіткнення. Я не уявляю, як одна обмежувальна скринька або коло можуть принаймні пристойно наближати цю форму, тому такий підхід не буде працювати.