当我向玩家body.applyForceToCenter(new Vector2(dir.x*500000*999999, dir.y*500000*999999), true);
施加此力时,我的效果几乎与我body.applyForceToCenter(new Vector2(dir.x, dir.y), true);
时的效果相同。这行代码是在玩家应该朝着dir
的特定方向移动Vector2
时调用的方法。我尝试多次使用applyForce()
,applyLinearImpulse()
调用该方法。
答案 0 :(得分:1)
Box2D确实有一个速度上限,每个时间步长为2个单位。 假设60 FPS,这意味着最大速度为120 m / s。
如果我们假设dir
已归一化,那么最终会达到500000*999999=499999500000
m / s ^ 2的加速度 - 这有点大并且很快达到极限。
这意味着在一秒钟内速度将增加499999500000 m / s,远高于120.
正如@dfour所说,使用较小的物体和值 - 当物体的大小在0.1到10米之间时,Box2D可以最佳地工作。