CCPhysicsSprite はいくつかの点で CCSprite とは異なることに気付きました。たとえば、スプライトの位置を設定する前に本体を設定する必要があります。ボディを破棄しようとすると EXC_BAD_ACCESS エラーが発生するのは、これらの違いの 1 つだと思います。update メソッド内で scheduleSprite メソッドを呼び出します。
-(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 を取得します
b2Vec2 pos = _b2Body->GetPosition();
の中に
-(CGAffineTransform) nodeToParentTransform
メソッド、クラス内
CCPhysicsSprite.mm
ありがとう。