Cocos2d iphone EXC_销毁尸体时无法进入
我在Sprite类中创建了一个方法,该方法更新CCPhysicsSprite主体的位置,直到它到达某个位置。代码如下:Cocos2d iphone EXC_销毁尸体时无法进入,cocos2d-iphone,box2d,physics,box2d-iphone,Cocos2d Iphone,Box2d,Physics,Box2d Iphone,我在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->ApplyF
-(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];
}
}
我有一种感觉,当主体为NULL时检查NULL会产生问题,因为该方法每1/60秒调用一次。我真的不知道如何着手解决这个问题。尝试这样做:
在physcisprite.mm中
- (void)dealloc
{
bWorld->DestroyBody(b2Body);
b2Body = NULL;
[super dealloc];
}
在函数中键入
[bLayer removeChild:phySpr cleanup:YES];
phySpr导致崩溃,如果(phySpr.b2Body!=NULL)@learncos2d:正在工作,请在移除
的Childgive上下文后尝试将phySpr置零。谢谢。我已经做了好几个小时了。
[bLayer removeChild:phySpr cleanup:YES];