我正在尝试在我正在制作的游戏中使用四叉树进行碰撞检测,但我不确定如何处理可能在不同四边形之间移动的对象?
我能想到的唯一方法是每帧清除整个树,然后将所有内容添加回那里,但这似乎会使 CPU 密集且效率不高。您是否每帧检查每个对象以查看它是否已移出当前四边形的边界,如果是,则将其删除并读取?这似乎又是非常低效的,因为您每帧都要对每个移动对象执行碰撞检查。
此外,关于四叉树,但与在其中移动的对象无关,您如何处理同一个四边形中的多个对象?我读过的大多数关于它们的网站都说你应该只在一个四边形中拥有一个,也许两个对象,如果你得到更多,然后将它们推到树中。如果你有这样的情况怎么办?你有三个圆圈,它们都在它们下一层的边缘,所以它们不能再往下走,但是有三个都在同一层,人们说你不应该有。