Box2D模拟中的恒速对象

时间:2014-02-21 18:24:09

标签: c++ box2d game-physics physics-engine

我想制作类似游戏的破砖机,但用砖块对物理作出反应。 我设置世界有0重力,砖有大线性和角度倾倒集。

但我对球有问题。我希望我的球能一直保持恒定的速度。即使在与砖块,墙壁和桨碰撞后(是的,我有2个)。我知道这不是物理学的工作方式。

但是有没有什么方法可以让球在与某些身体接触时不会松动?并且让球立即从砖块中弹回而不会失去它的能量但是对它们施加力(砖块)?

1 个答案:

答案 0 :(得分: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() );