在box2d中,我应该如何让身体以恒定的速度在地面上移动?

时间:2013-12-11 01:16:42

标签: box2d libgdx

我目前的原型-ha hack是为了消除地面的摩擦,但现在我想要一个真正的解决方案。

我想我可以做一些基本的物理数学,并且每一步都给每个物体一个冲动,但如果这种情况发生在每秒60次,那么它是否会在计算方面有点昂贵?

有没有更好的方法在物体上设置某种恒定速度,直到某种外力接触它(在我的情况下是射弹或墙壁)?

2 个答案:

答案 0 :(得分:5)

阅读本文了解您的解决方案

Constant speed

我们可以通过

应用恒定速度
  

直接设定速度

body->SetLinearVelocity( vel );
  

使用武力

body->ApplyForce( b2Vec2(force_x,force_y), body->GetWorldCenter() )
  

使用冲动

 body->ApplyLinearImpulse( b2Vec2(impulse_x,impulse_y), body->GetWorldCenter() );

答案 1 :(得分:2)

Body#setLinearVelocity

示例:

body.setLinearVelocity(10, 0); //Right

以恒定的速度移动身体,只需在每一步之前设置它。