2016-09-17 65 views
0

我最近正在開發一款遊戲(它應該是像重組那樣的太空船遊戲)。 所以我的情況: - 我得到2具有0恢復原狀和0摩擦的物體 - 當它們碰撞時,它們因爲我的線狀擋板而滑動並失去速度 - 但是當它們中的一個都旋轉時(與setangularvelocity一起)速度非常高,我無法弄清楚爲什麼他們會這麼難。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

相關問題