特定の位置に到達するまで CCPhysicsSprite ボディの位置を更新する Sprite クラス内のメソッドを作成しました。以下のコード:
-(void)updatePhyscisSprite {
if (phySpr.b2Body->GetPosition().y < 200.0/PTM_RATIO) {
b2Vec2 force = b2Vec2(0.0, 12.0*phySpr.b2Body->GetMass());
phySpr.b2Body->ApplyForce(force, phySpr.b2Body->GetWorldCenter());
}
if (phySpr.b2Body->GetPosition().y > 200.0/PTM_RATIO) {
bWorld->DestroyBody(phySpr.b2Body);
phySpr.b2Body = NULL;
[bLayer removeChild:phySpr];
}
}
次の行で EXC_BAD_ACCESS エラーが発生し続けます。
if (phySpr.b2Body != NULL) { // EXC_BAD_ACCESS ERROR
メソッドが 1/60 秒ごとに呼び出されるため、ボディが NULL のときに null をチェックすると問題が発生する気がします。これを修正する方法がよくわかりません。