0
Я создал метод в классе Sprite, который обновляет положение тела CCPhysicsSprite до достижения определенной позиции. Код ниже:EXC_BAD_ACCESS при уничтожении тела
-(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
У меня есть ощущение, что проверка для недействительности, когда тело создает проблему NULL, так как метод вызывается каждый 1/60 секунды. Я не совсем уверен, как это сделать.
phySpr является причиной аварии, попробуйте niling в phySpr после RemoveChild – LearnCocos2D
Дайте контекст для 'if (phySpr.b2Body! = NULL)'. – Kreiri
@ LearnCocos2D: Он работает. большое спасибо. Я был у него часами. – user2380370