假设我正在使用此字符。
(来源:iconbug.com)
您将如何实现碰撞检测?使用边界框似乎不是一个很好的近似值,因为这只鸟的形状远不及正方形。
我正在考虑在对象内部具有一种表示图像部分的四叉树数据结构。每片叶子要么是false
(如果它覆盖了鸟类外部的白色/透明空间),要么是true
(如果它代表了鸟类的某个区域,例如喙,眼睛等)。然后以某种方式测试场景中与鸟类碰撞的唯一障碍。
但是我遇到的问题是:
- 我不知道如何初始化四叉树。
- 一旦四叉树被初始化,一旦障碍物在图像坐标内,我就不确定如何遍历和使用它。
如何处理非方形字符的冲突检测?
LE:我见过的另一种方法是使用多个边界框。例如,我将为喙提供一个或几个边界框,然后为头发或尾巴添加一些边界框。但这会很乏味。如果对我而言这是一种有效的方法,我将如何生成这些边界框?我怀疑我是否必须在程序中对它们进行硬编码。
LE2:我关心的是相当精确的碰撞。我无法想象单个边界框或圆形如何至少可以像样地近似该形状,因此这种方法行不通。