我正在尝试在我制作的游戏中使用四叉树进行碰撞检测,但我不确定如何处理可能在不同象限之间移动的对象?
我能想到的唯一方法是每帧清除整个树,然后将所有内容重新添加进去,但这似乎会变得非常耗费cpu并且效率不高。您是否每帧检查每个对象是否移动到其当前象限的边界之外,如果是,则将其删除并重新添加?那似乎也会非常低效,因为您将在每个移动对象上执行碰撞检查。
此外,关于四叉树,但与其中移动的对象无关,如何处理相同象限中的多个对象?我阅读的大多数网站都说您应该在一个象限中只有一个或两个对象,如果超过这个数量,则将它们推入树中。如果您遇到像这样的情况怎么办?您有三个圆,它们都在下面一级的边缘,因此无法进一步向下移动,但是在同一级别中有三个圆形,人们说您不应该这样做。