找到最接近某个位置的非碰撞矩形的有效方法是什么

时间:2010-06-18 07:35:28

标签: algorithm language-agnostic collision-detection

对于我正在研究的2D游戏,我在简单的基于矩形的碰撞检测中使用y轴排序。这工作正常,现在我想有效地找到具有给定大小的给定位置的最近的空矩形。我怎样才能做到这一点?有算法吗?

我可以想到一个简单的强力网格测试(每个网格都是我们正在寻找的空白空间的大小),但显然这很慢,甚至不是一个完整的测试。

2 个答案:

答案 0 :(得分:1)

考虑使用四叉树来存储矩形。 有关详细信息,请参阅http://en.wikipedia.org/wiki/Quadtree

答案 1 :(得分:0)

如果你已经在使用轴排序,那么你可能已经计算了一个按位置排序的矩形列表。

也许我误会了,但是你能不能只看到问题矩形前后的两个矩形,并决定哪一个更接近?如果您正在谈论找到任意点的最近矩形,那么您可以简单地遍历列表,直到找到位置比任意点更大的第一个矩形,并使用该矩形和前面的矩形作为两个比较。