Iphone 高效处理身体间碰撞检测的最佳方法是什么?

Iphone 高效处理身体间碰撞检测的最佳方法是什么?,iphone,objective-c,cocos2d-iphone,collision-detection,box2d-iphone,Iphone,Objective C,Cocos2d Iphone,Collision Detection,Box2d Iphone,我对Cocos2d、Box2d和游戏开发都是新手,但我已经阅读了一些教程,至少在游戏设置和工作方面有了一个良好的开端 我现在需要开始在一个层中添加更多的身体,并且需要检查我的主化身是否以及何时会与其中任何一个发生碰撞 常识似乎告诉我,我添加的实体越多,我添加的案例越多,比如检查fixture1是否与fixture2发生冲突,就会在某个时候使处理器陷入困境 随着尸体数量的增加,是否有任何最佳实践和/或有效算法使这些检查随着时间的推移变得更有效 任何链接或方向将不胜感激!谢谢大家! 可以使用四叉树分

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

我现在需要开始在一个层中添加更多的身体,并且需要检查我的主化身是否以及何时会与其中任何一个发生碰撞

常识似乎告诉我,我添加的实体越多,我添加的案例越多,比如检查fixture1是否与fixture2发生冲突,就会在某个时候使处理器陷入困境

随着尸体数量的增加,是否有任何最佳实践和/或有效算法使这些检查随着时间的推移变得更有效


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

可以使用四叉树分割场景,并获得需要检查的实体列表。 有很多文章展示了四叉树是如何工作的,只需谷歌一下:D

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


从iOS 7开始,您可以使用Sprite工具包处理碰撞:


非常感谢。我去看看!我想在重读我的帖子后,我意识到我知道box2d在很大程度上为你做碰撞检测,我想问的是一旦检测到碰撞,用场景中的每个装置检查2个未知装置是否真的是确定碰撞的对象和发生位置的最佳方法?这取决于装置的数量。当它很小时,比如0-10,这是最好的解决方案。当它更多的时候,使用一些算法来减少cpu的使用。事实上,我以前没有使用过box2d,所以我不能向您展示一些关于这方面的代码。希望其他人能为你做这件事。