2013-03-11 56 views
0

IM製作遊戲cocos2d + box2d。遊戲工作正常,但我玩一些b2world時間的推移絞死後(接地線得到的drawDebug模式消失)和我的一些b2bodies'屬性成爲NAN。 (我不知道我應該在這裏貼上什麼碼!:()b2World古怪行爲(Box2D的cocos2d的+)

是這段代碼有問題?

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);       

       } 
      } 
    } 
} 
+1

開始與世界更新代碼,collission回調以及你如何創建和刪除主體。 – LearnCocos2D 2013-03-11 09:11:32

+0

感謝好友......我已經調試了我所有的線......我發現有一個表達式,這往往會在我的計算中被零除異常除去,這是一個全球性的... – BaSha 2013-03-12 13:32:16

回答

-1

我調試了我所有的行..和我發現,有一個表達至極傾向於通過我的計算零異常這是stucking整個世界劃分...

+1

@ IronMan84他**是作者,他在陳述什麼是錯的。 – 2013-03-12 14:25:36

0

在init事件創建世界妥善像下面

b2Vec2克avity = b2Vec2(0.0f,-9.8f); _world = new b2World(gravity);

+0

我已經.. b2Vec2重力; gravity.Set(0.0f,-10.0f); bool doSleep = true; world = new b2World(gravity,doSleep); world-> SetContinuousPhysics(true); – BaSha 2013-03-12 06:48:12