Cocos2d iphone b2World行为怪异(BOX2d和COCOS2d)

Cocos2d iphone b2World行为怪异(BOX2d和COCOS2d),cocos2d-iphone,box2d,Cocos2d Iphone,Box2d,我正在用cocos2d+box2d制作游戏。游戏运行得很好,但玩了一段时间后,我的b2world就挂了(在drawDebug模式下基线消失),我的B2Body的一些属性变成了NAN(我不知道我应该在这里粘贴什么代码!) 这个代码有问题吗 std::vector<b2Body *>toDestroy; //Iterate over the bodies in the physics world for (b2Body* b = world->GetBody

我正在用
cocos2d+box2d
制作游戏。游戏运行得很好,但玩了一段时间后,我的b2world就挂了(在drawDebug模式下基线消失),我的B2Body的一些属性变成了
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);                        

                }
            }   
    }   
}
std::vectortoDestroy;
//迭代物理世界中的物体
对于(b2Body*b=world->GetBodyList();b;b=b->GetNext())
{                    
如果(b->GetUserData()!=NULL){
//将AtlasSprites的位置和旋转与相应的实体同步
CCSprite*myActor=(CCSprite*)b->GetUserData();
myActor.position=CGPointMake(b->GetPosition().x*PTM_比率,b->GetPosition().y*PTM_比率);
myActor.rotation=-1*CC_弧度到_度(b->GetAngle());
if(myActor&&myActor.tag==5){
如果([myActor opacity]==0){
toDestroy.向后推(b);
}
}   
}   
}

在init事件中正确创建世界,如下所示

b2Vec2重力=b2Vec2(0.0f,-9.8f);
_世界=新世界(重力)

我调试了我的所有行..我发现在我的计算中有一个表达式,它倾向于被零除异常,这震惊了整个世界..

从世界更新代码、碰撞回调以及如何创建和删除实体开始。谢谢伙计…我调试了我的所有行..我发现有一个exp在我的计算中,我的计算结果往往会被零除,这一点震惊了整个世界……我已经有了……b2Vec2重力;重力。Set(0.0f,-10.0f);bool doSleep=true;world=new b2World(重力,doSleep);world->SetContinuousPhysics(true);@IronMan84他是作者,他正在陈述错误。