当我将此力应用于播放器时 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 的效果最佳。
关于java - libgdx 不同的力量对 body 有相同的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807828/