我可能会遇到一个问题,想象一下碰撞检测相关问题的最佳解决方案。我正在用Java编写一个2D自上而下的游戏,其中包含许多可能发生冲突的对象。我打算使用这种方法来创建一个多分辨率的地图,特定的对象在地图正方形的特定分辨率下,这样我就可以解决O(n²)问题并缩小可能发生碰撞的区域中的对象。 我必须保留每个地图方块中所有对象的列表。但是,由于许多或有时所有对象都在移动,我必须始终更新这些列表。 我想使用一个对象的每个渲染周期来更新地图方形列表将耗费大量资源,并且可能会破坏我通过使用多分辨率贴图缩小可能与另一个对象碰撞的数字对象所获得的优势。
现在我的问题是,如何跟踪所有对象并将它们填入相应的地图方块?有没有简单的方法,或者我应该为碰撞检测选择另一个概念?
我可能忘记了一些细节,如果我应该提供更多信息,请回复。
提前致谢 最好的问候
答案 0 :(得分:0)
我假设您有非移动物体和移动物体。静态对象只需要在多分辨率映射中注册一次。移动物体只需检查它们是否属于另一个方格,如果它们真的移动了。
取决于您如何进行实际碰撞检测,您只需要重新检查移动物体是否移动了一定距离。检查与当前和所有周围方块中的对象的碰撞时的情况。
远离玩家广场的广场通常也不需要检查每一个物理过程。反正通常都没有采取任何行动。