使用box2d时速度有没有上限?

问题描述:

我使用box2d进行物理模拟。当按下某个键时,通过对身体施加冲击,使用箭头键移动一个圆圈。不幸的是,这个圈子极其缓慢地移动,似乎并不像一个真实的身体所应该加速的那样。 我的世界尺寸为400x800像素。圆体的半径是20f。使用box2d时速度有没有上限?

this,这个问题可以通过它创建和绘画中得到体位后放大的时候缩放圆半径下来解决。它似乎没有任何区别。我在这里错过了一些步骤或设置?

Code on pastebin

+0

你能分享相关的代码吗?例如。身体的建设等。 – Tom 2013-02-08 14:04:06

+0

@Tom在pastebin上添加了代码链接。我使用box2d和libgdx游戏引擎 - 所以代码是用Java编写的。 – ivymike 2013-02-08 14:14:19

+1

你实际上是在某个地方的圆上应用冲动吗? 'ApplyLinearImpulse' – Tom 2013-02-08 14:23:18

对了,还有你使用的尺寸之间的差别。 Box2d对浮点数进行操作,因此其精度有限且仿真质量不同。 Box2d被调整为适合尺寸为0.1 to 10的动态物体。

所以一般你应该更喜欢使用一个单位的物理和其他图形

现在你的问题。身体的速度受碰撞,摩擦(如果一个身体滑过另一个身体)和linear damping。因此,请检查您使用的linear damping的值(我记得默认情况下它不是零)。就我所知,没有速度限制,但如果使用相同的时间步长,则较高的速度将提供较少的质量冲突。

+1

不幸的是设置线性阻尼为零也没有帮助: – ivymike 2013-02-08 15:49:13

现在我花了相当长的时间才明白,但实际上在Box2D中实际上确实存在对速度的严格限制。请参阅here

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

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