我有个奇怪的问题。如果我用向量ENTER_FRAME将一个物体在背上移动(以获得一个恒定的运动),并将其作为脉冲与body.applyImpulse(vec);一起应用,当我在同一帧中‘呈现’正在做space.step(1 / this._stage.frameRate);a的场景时,并在那个时候跟踪身体像素上的运动差异(与其在前一个帧中的位置相比),它并不是每帧不变的。其结果是,有时位置在前面,就像它在同一帧中产生了2个脉冲,而下一个帧不会有任何冲动或移动,而精灵是不稳定的,这是随机发生的。空间没有凹面(0,0);
如何使身体在每一帧都有冲动的情况下保持良好的恒定运动呢?我试过使用body.position.setxy(),但它违背了模拟的目的.
我和space.step(1 / this._stage.frameRate);玩了一会儿,并尝试了space.step(0.1 / this._stage.frameRate);,随机的震动消失了,但是现在身体在每个框架上都有一点震动。有什么想法吗?
用现在的速度而不是applyImpulse编辑,还有同样的问题。
var old:Number = body.velocity.x;
body.velocity.x = dir.x*speed;
body.velocity.y = dir.y*speed;
trace("DIFF", body.velocity.x-old);我在每一个框架上运行这个,身体x上位置的不同是:
DIFF 0.19997499999993806
DIFF 0.19997499999993806
DIFF 0.19997499999993806
DIFF 0.19997499999993806
DIFF 0.19997499999993806
DIFF 0.19997499999993806
DIFF 0.19997499999993806
DIFF 0.29992500624990726
DIFF 0.0999999999999659
DIFF 0.19997499999993806
DIFF 0.19997499999993806因此,每隔一段时间,施加在物体上的速度的结果并不是恒定的,因为它偶尔会呈现“前进”,如果我可以说的话,“修正”本身。
发布于 2014-03-06 16:08:12
Ok找到了这个问题,如果其他人面临同样的问题,可以发布:
space.step(1 / this._stage.frameRate,1,1)
纠正这个问题,因为我没有满足感
https://stackoverflow.com/questions/22214757
复制相似问题