gpt4 book ai didi

java - 多分辨率 map 的碰撞检测

转载 作者:行者123 更新时间:2023-11-29 09:17:29 24 4
gpt4 key购买 nike

我可能无法想象碰撞检测相关问题的最佳解决方案。我正在用 Java 编写一个 2D 自上而下的游戏,其中包含许多可能发生碰撞的对象。我计划使用该方法创建一个多分辨率 map ,其中特定对象具有特定分辨率的 map 方 block ,这样我就可以解决 O(n²) 问题并缩小可能发生碰撞的区域中的对象。我必须保留驻留在每个 map 方 block 中的所有对象的列表。但是,由于许多或有时所有对象都在移动,我必须始终更新这些列表。我猜想使用对象的每个渲染周期来更新 map 方 block 列表将非常耗费资源,并且可能会破坏我通过使用多分辨率 map 来缩小可能与另一个对象发生碰撞的对象数量所获得的优势。

我现在的问题是,如何跟踪所有对象并将它们填充到相应的 map 方 block 中?有没有简单的方法,或者我应该为碰撞检测选择另一个概念?

我可能忘记了一些细节,如果我需要提供更多信息,请回复。

提前致谢最好的问候

最佳答案

我假设您有非移动物体和移动物体。静态对象只需要在多分辨率 map 中注册一次。移动的物体如果真的移动了,只需检查它们现在是否属于另一个方 block 。

根据您进行实际碰撞检测的方式,您只需重新检查移动物体是否移动了一定距离。当您检查与当前和所有周围方 block 中的对象的碰撞时就是这种情况。

远离玩家方格的方格通常也不需要在每次物理传递时都检查。无论如何通常都不会发生任何 Action 。

关于java - 多分辨率 map 的碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8552267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com