我使用Cocos2d v 1.0.1和Box2d(cocos2d + box2d模板)創建iOS應用程序。 在iPad上我的應用程序工作正常 在iPhone 4,4s(ios版本5.0.1,6.0,未在其他iPhone /固件上測試過)我在遊戲開始時(在短暫播放後)獲得了EXC_BAD_ACCESS。cocos2d中的box2d與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版本和其他一些東西。 我現在無法解決這個問題。
我應該用什麼方法來調試這次崩潰?
我能做些什麼來研究和解決它?
現在我有一個類似的問題,我假設原因是線程。在一個序列或其他類型的塊中移除來自世界的物品(比如銷燬物等)可能是「危險的」。在主更新循環結束/開始時只刪除這些內容或執行這些操作可能會更好。因此,保留一個要刪除的東西列表,並在更新結束時檢查它。有點像你做的事情。 – Jonny