0

.game を使用してゲームを作成すると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);                        

                }
            }   
    }   
}
4

2 に答える 2

0

init イベントで Create World 以下のように適切に

b2Vec2 重力 = b2Vec2(0.0f, -9.8f); _world = new b2World(重力);

于 2013-03-12T06:19:35.703 に答える
-1

私はすべての行をデバッグしました..そして、全世界を詰まらせていた計算でゼロ例外で除算する傾向がある式があることがわかりました...

于 2013-03-12T13:33:10.140 に答える