我遇到了一些让box2d身体直线移动的问题。有时我运行代码它会工作(身体沿直线移动),有时它会随着移动而下降。下面是我在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;
}
}
此外,当满足第二个if条件时,我得到指向行
的EXC_BAD_ACCESSb2Vec2 pos = _b2Body->GetPosition();
中的
-(CGAffineTransform) nodeToParentTransform
方法,在类
中CCPhysicsSprite.mm
感谢任何帮助。