1

我开发了一个可以向其发射子弹的入侵者网格。

我所知道的碰撞检测的唯一解决方案是使用两个RectanglesIntersects方法。

现在,我觉得将每个子弹与屏幕上的每个入侵者进行比较是没有效率的。

我可以在这里使用另一种更智能的解决方案,并且只比较一些入侵者。

我建议在 X 轴上使用一个标志,在发射时填充子弹的 X 位置。入侵者精灵将有权访问此标志,并且仅当入侵者精灵位于该 X 位置(+/- 几个 px)时才会运行 intersects 方法。这将大大减少比较的次数。

有任何想法吗?谢谢。

4

1 回答 1

1

你是对的,你可以做一些可能更有效的事情。通过将空间划分为粗粒度部分并查看子弹在哪个部分,您可以修剪其他部分的入侵者。你可以更进一步,拥有多层“粗略”或分辨率。

在这个思路的最后是一种称为四叉树的数据结构。这是在二维中进行碰撞检测的一种自然而有效的方法。

于 2012-07-28T05:12:19.653 回答