有效处理物体之间碰撞检测的最佳方法是什么?

时间:2011-09-21 12:08:06

标签: iphone objective-c cocos2d-iphone collision-detection box2d-iphone

我是Cocos2d,Box2d和游戏开发的新手,但我已经阅读了很多教程,至少在游戏设置和工作方面有一个良好的开端......

我现在处于需要开始向图层添加更多实体的位置,需要检查并查看我的主要头像是否以及何时与其中任何一个发生碰撞..

常识似乎告诉我,我添加的物体越多,我添加的更多情况检查以查看fixture1是否与fixture2发生碰撞,这样会使处理器在某个时刻陷入困境。

随着身体数量的增长,是否有任何最佳实践和/或有效算法可以使这些检查更有效?

任何链接或方向将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用QuadTree划分场景并获取需要检查的实体列表。 (有很多文章展示了QuadTree是如何工作的,只是google it:D)

如果这对你来说有点复杂。然后,您可以尝试将场景划分为多个网格,并根据其2D位置创建一个循环以将主体放入其网格中。然后只需检查每个网格中的实体。它比普通循环快很多。

http://i.stack.imgur.com/W5cBT.png

答案 1 :(得分:0)