有一个farseer物理问题我很确定问题只是由于y值而导致这行代码。因此,当我试图在摔倒时移动我的角色时,他会正常左右移动但是他的摔倒会减慢。
body.LinearVelocity = new Vector2(1,0)
有没有办法只改变这个的x值?或者有没有办法防止滑动并为applyforce()或applylinearimpulse()的速度设置上限?
答案 0 :(得分:1)
通过将线速度设置为1,0,您可以为角色提供1的水平速度和0的垂直速度。因此,您可以有效地阻止它掉落。
以下代码将执行您期望的操作,因为它会保留垂直速度。
body.LinearVelocity = new Vector2(1, body.LinearVelocity.y);
在某些(大多数)情况下,最好使用body.Apply...
对角色施加力或冲动,这会对单个帧施加力,而Farseer会自动计算正确的速度。请注意,每帧添加相同的力或脉冲将使移动速度加快。