我在 Sprite 类中创建了一个方法,它更新 CCPhysicsSprite 主体的位置,直到它到达某个位置。下面的代码:
-(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
我有一种感觉,当 body 为 NULL 时检查 null 会产生问题,因为该方法每 1/60 秒调用一次。我不确定如何解决这个问题。