Xna 利用Farseer物理学解决重力问题

Xna 利用Farseer物理学解决重力问题,xna,game-physics,monogame,physics-engine,farseer,Xna,Game Physics,Monogame,Physics Engine,Farseer,farseer physics有个问题,我很确定这个问题就是这行代码的问题,因为y值。所以,当我试图移动我的角色时,他通常会左右移动,但他的下降速度会减慢 body.LinearVelocity = new Vector2(1,0) 有没有办法只改变这个的x值?或者有没有办法防止滑动并对applyforce()或applylinearimpulse()的速度设置上限?通过将线性速度设置为1,0,可以为角色提供1的水平速度和0的垂直速度。所以你可以有效地阻止它坠落 以下代码将执行您所期望的操作,

farseer physics有个问题,我很确定这个问题就是这行代码的问题,因为y值。所以,当我试图移动我的角色时,他通常会左右移动,但他的下降速度会减慢

body.LinearVelocity = new Vector2(1,0)

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

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

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

body.LinearVelocity=新向量2(1,body.LinearVelocity.y)


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

它不会停止y轴上的移动。我知道应该是这样,我想法希尔物理学的开发者们不这么认为。感谢您的帮助,它停止了迄今为止计算的移动。但在最后一步,重力被施加。这就是为什么它会减速而不是完全停止:)。