libgdx 不同的力对 body 的影响相同

libgdx different force has same effect on body

当我向玩家施加这个力时 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().

Box2D 确实有一个速度上限,即每个时间步长 2 个单位。 假设 60 FPS,这意味着最大速度为 120 m/s。

如果我们假设 dir 已归一化,您最终将达到 500000*999999=499999500000 m/s^2 的加速度 - 这有点大并且很快达到极限。

这意味着在一秒钟内速度将增加 499999500000 m/s,这远远高于 120。

正如@dfour 所说,使用较小的对象和值 - 当对象的大小在 0.1 到 10 m 之间时,Box2D 工作最佳。