使用box2d时速度是否有上限?

时间:2013-02-08 13:59:04

标签: box2d libgdx game-physics physics-engine

我正在使用box2d进行物理模拟。当按下按键时,我通过在身体上施加冲动使用箭头键移动一个圆圈。不幸的是,圆圈移动速度极慢,并且似乎没有像真正的身体一样加速。 我的世界尺寸是400x800像素。圆体的半径是20f。

根据this,可以通过在创建圆形半径时缩小圆形半径并在绘制过程中获取主体位置后放大来解决问题。它似乎没有任何区别。我有什么步骤或设置吗?

Code on pastebin

2 个答案:

答案 0 :(得分:23)

我现在花了很长时间才明白,但实际上 IS 确实是Box2D中对速度的硬限制。见here

  

每个时间步的最大移动限制为2.0个单位,在源代码中的文件b2Settings.h中给出。

如果每帧60FPS有一步,那么你的身体可以以120m / s的最大速度移动。也许有一天这会节省一些时间。

答案 1 :(得分:4)

是的,您使用的是哪种尺寸。 Box2d对浮点数进行操作,因此精度有限,仿真质量也不同。 Box2d已调整为适用于大小为0.1 to 10的动态主体。

所以一般来说,你应该更喜欢使用一个单位用于物理,另一个用于图形

现在回答你的问题。身体的速度受到碰撞,摩擦(如果一个身体滑过另一个身体)和linear damping的影响。因此,请检查您使用linear damping的值(默认情况下,它是非零值)。据我所知,没有速度限制,但如果使用相同的时间步长,速度越高,碰撞质量就越低。