我使用 Cocos2d v 1.0.1 和 Box2d(cocos2d + box2d 模板)创建 iOS 应用程序。 在 iPad 上,我的应用程序运行 良好在 iPhone 4,4s(ios 版本 5.0.1、6.0,未在其他 iPhone/固件上测试)我在游戏开始时获得 EXC_BAD_ACCESS(玩了很短的时间后)。
myActor.position = CGPointMake( b->GetPosition().x * PTM_RATIO, b->GetPosition().y * PTM_RATIO );
我分析了 b 和 Box2d 世界的状态,看起来世界的身体列表已损坏。指向 b 的指针包含 b2PolygonShape,而不是 b2Body(我在 Xcode 的变量视图中看到)。有时(也仅在 iPhone 上),我的游戏开始出现异常。我在我的更新方法中设置了断点,并意识到 Box2d 世界的身体列表只包含一个身体(但在之前的更新世界中包含许多身体,并且在当前更新时它们在屏幕上可见)。
我检查了我的游戏代码,但找不到错误或此类行为的原因。我尝试使用 Xcode 的分析功能,更改 Box2d 版本和其他一些东西。我暂时无法解决这个问题。
我应该使用什么方法来调试此崩溃?
我能做些什么来研究和解决它?