我正在使用cocos2d + box2d
制作游戏。游戏运行正常,但经过一段时间的游戏,我的b2world被绞死(地面线在drawDebug模式下消失),我的一些b2bodies属性变为NAN
。 (我不知道我应该在这里粘贴什么代码!:()
这段代码有问题吗?
std::vector<b2Body *>toDestroy;
//Iterate over the bodies in the physics world
for (b2Body* b = world->GetBodyList(); b; b = b->GetNext())
{
if (b->GetUserData() != NULL) {
//Synchronize the AtlasSprites position and rotation with the corresponding body
CCSprite *myActor = (CCSprite*)b->GetUserData();
myActor.position = CGPointMake( b->GetPosition().x * PTM_RATIO, b->GetPosition().y * PTM_RATIO);
myActor.rotation = -1 * CC_RADIANS_TO_DEGREES(b->GetAngle());
if(myActor && myActor.tag==5){
if([myActor opacity]==0){
toDestroy.push_back(b);
}
}
}
}
答案 0 :(得分:0)
在init事件中正确创建World,如下所示
b2Vec2 gravity = b2Vec2(0.0f,-9.8f); _world = new b2World(gravity);
答案 1 :(得分:-1)
我已经调试了我的所有行...我发现在我的计算中有一个表达式,它往往会被零除外...这就是全世界......