私はこの非常に奇妙な問題をBox2D(iOSの下で)に持っています。私は画面の下部に座っている体を持っています。私がb2_dynamicBodyからb2_staticBodyにbody->SetType(b2_staticBody)
を使ってボディをセットした後、後でそれをb2_dynamicBodyに戻すように設定した場合、画面の一番下に落ちてから床と正しく安静に来る。Box2Dの形状が世界に広がる
この現象は、画面の下部にのみ表示されるようです。お互いに座っている他の身体と同じことをすることは、この行動をもたらさない。
次のように(すでに世界の空間に調整されてscreenRectを)私は画面の端を定義しています:
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(0,0);
b2Body* groundBody = globalWorld->CreateBody(&groundBodyDef);
b2PolygonShape groundBox;
b2FixtureDef boxShapeDef;
boxShapeDef.shape = &groundBox;
groundBox.SetAsEdge(b2Vec2(screenRect.p1.x,screenRect.p1.y), b2Vec2(screenRect.p2.x, screenRect.p1.y));
groundBody->CreateFixture(&boxShapeDef);
groundBox.SetAsEdge(b2Vec2(screenRect.p1.x,screenRect.p1.y), b2Vec2(screenRect.p1.x, screenRect.p2.y));
groundBody->CreateFixture(&boxShapeDef);
groundBox.SetAsEdge(b2Vec2(screenRect.p1.x,screenRect.p2.y), b2Vec2(screenRect.p2.x, screenRect.p2.y));
groundBody->CreateFixture(&boxShapeDef);
groundBox.SetAsEdge(b2Vec2(screenRect.p2.x,screenRect.p2.y), b2Vec2(screenRect.p2.x, screenRect.p1.y));
groundBody->CreateFixture(&boxShapeDef);
本の奇妙一部は、より多くの私は遠く、ダイナミックからスタティックに身体を切り替えています遠くに押し戻される前に床に落ちる。
私は身体の中で、動的から静的なものを除いて他のものを変更していません。私がボディを動かしてフロアに戻すと、ダイナミックからスタティックへの切り替えが始まり、フロアにどれくらい落ちるかがリセットされますが、スイッチを押すたびにボディが再構築されます。
私は間違って作成していない限り、なぜこのような床の中に落ちているのか分かりません。ゲームの他のすべては完全に機能します。