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 工作最佳。
当我向玩家施加这个力时 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 工作最佳。