2014-02-21 57 views
0

我想製作像磚塊般的破碎機,但是磚塊會對物理作出反應。 我設置世界有0重力和磚有大的線性和角度傾倒集。Box2D模擬中的恆速物體

但我有球問題。我希望我的球始終具有相同的恆定速度。即使在與磚塊,牆壁和槳碰撞後(是的,我有2個)。我知道這不是物理學的工作方式。

但是有什麼辦法可以讓球與某些物體接觸不鬆散嗎?讓球從磚塊立即彈起而不會鬆動它的能量,但對他們施加力量(磚塊)?

回答

0

我也在尋找,但在AS3中 - 我確實找到了我想要的C++。在給出它之後,我想下面是你想要的,用Box2D物理以恆定速度移動一個物體。我也會張貼鏈接,儘管回答問題並不是很好的做法,因爲它們可能會在未來破裂。 Constant Speed

b2Vec2 vel = body->GetLinearVelocity(); 
    float desiredVel = 0; 
    switch (moveState) 
    { 
     case MS_LEFT: desiredVel = -5; break; 
     case MS_STOP: desiredVel = 0; break; 
     case MS_RIGHT: desiredVel = 5; break; 
    } 
    float velChange = desiredVel - vel.x; 
    float impulse = body->GetMass() * velChange; //disregard time factor 
    body->ApplyLinearImpulse(b2Vec2(impulse,0), body->GetWorldCenter());