2016-09-17 12 views
0

最近ゲームを開発しています(リアセンブリのような宇宙船ゲームでなければなりません)。 だから私の状況: - 私は戻って0の摩擦と0摩擦で2体を持っています - 彼らが衝突しているとき、彼らは私のラインカードのために滑り速度を失います - しかし、そのうちの1つが回転して非常に速い速度で、なぜ私は彼らがこの困難を跳ね返るかを理解できません。2体が回転しながら衝突したときのBox2dの不思議な動き

(と私はちょうど何の反発がなくてもバウンスはほとんど存在しなければならないことを読んで、私はこのような何かを期待しておりません)

ここにいくつかのコードです:

b2PolygonShape shape; 

    b2BodyDef def; 
    def.type = b2_dynamicBody; 

    b2FixtureDef fix; 
    fix.density = 1.f; 
    fix.restitution = .0f; 
    fix.friction = 0.f; 


    bbody = world->CreateBody(&def); 
    bbody2 = world->CreateBody(&def); 


    bbody->SetLinearDamping(2.0f); 
    bbody2->SetLinearDamping(2.0f); 

    // PIXELPERMETER is the scaling from pixels to meter. (30) 
    shape.SetAsBox(32/PIXELPERMETER/*=30*/, 32/PIXELPERMETER); 

    fix.shape = &shape; 
    bbody->CreateFixture(&fix); 
    bbody2->CreateFixture(&fix); 

    bbody2->SetTransform(b2Vec2(-100/PIXELPERMETER, 0), 0); 

答えて

0

たぶん、あなたがすべきあなたの体の大量データを微調整しようとしますか?

b2MassData massData; massData.mass = 50; //Just tweak me massData.I = 1; //Just never set me to 0 if you don't want to have nAn propagating massData.center = b2Vec2_zero; bbody->SetMassData(&massData);

+0

大丈夫、私はそれを試してみてください、あなたの速い返信をありがとう。 編集:ええ、それはトリックをした! – Cobrapitz

関連する問題