我意識到CCPhysicsSprite與CCSprite在幾個方面有所不同。例如,您必須在設置精靈的位置之前設置主體。我認爲這是我嘗試銷燬機體時導致EXC_BAD_ACCESS錯誤的其中一個差異。我在更新方法中調用scheduleSprite方法。如何破壞CCPhysicsSprite的身體
-(void)scheduleSprite {
if ([testSprite physicsSprite].b2Body != NULL) {
b2Vec2 force = b2Vec2(-5, 10.0 * [testSprite physicsSprite].b2Body->GetMass());
[testSprite physicsSprite].b2Body->ApplyForce(force, [testSprite physicsSprite].b2Body->GetWorldCenter());
if ([testSprite physicsSprite].position.x < 0) {
world->DestroyBody([testSprite physicsSprite].b2Body);
[testSprite physicsSprite].b2Body = NULL;
}
}
}
我得到一個EXC_BAD_ACCESS指向在
-(CGAffineTransform) nodeToParentTransform
方法排隊
b2Vec2 pos = _b2Body->GetPosition();
,類
CCPhysicsSprite.mm
感謝之內。
[EXC \ _BAD \ _ACCESS錯誤和在直線水平移動box2d正文時出現奇怪行爲的可能的重複](http://stackoverflow.com/questions/16055026/exc-bad-access-error-and-strange-行爲,當移動box2d身體在直浩) – Morion 2013-04-18 09:44:24