使用Farseer Physics的重力问题

时间:2014-10-09 22:41:52

标签: xna game-physics monogame physics-engine farseer

有一个farseer物理问题我很确定问题只是由于y值而导致这行代码。因此,当我试图在摔倒时移动我的角色时,他会正常左右移动但是他的摔倒会减慢。

body.LinearVelocity = new Vector2(1,0)

有没有办法只改变这个的x值?或者有没有办法防止滑动并为applyforce()或applylinearimpulse()的速度设置上限?

1 个答案:

答案 0 :(得分:1)

通过将线速度设置为1,0,您可以为角色提供1的水平速度和0的垂直速度。因此,您可以有效地阻止它掉落。

以下代码将执行您期望的操作,因为它会保留垂直速度。

body.LinearVelocity = new Vector2(1, body.LinearVelocity.y);

在某些(大多数)情况下,最好使用body.Apply...对角色施加力或冲动,这会对单个帧施加力,而Farseer会自动计算正确的速度。请注意,每帧添加相同的力或脉冲将使移动速度加快。