[英]Nape space.step and constant impulse
我有一個奇怪的問題。 如果我使用向量var vec:Vec2 = new Vec2(40,0);
在每個ENTER_FRAME
使主體在項中移動(以獲得恆定的運動var vec:Vec2 = new Vec2(40,0);
並將其作為與body.applyImpulse(vec);
沖動應用body.applyImpulse(vec);
,當我在同一幀上“渲染”場景時執行space.step(1 / this._stage.frameRate);a
並跟蹤當時人體的移動差異(與前一位置的位置相比)幀),它不是每幀恆定。 結果有時是位置在前面,就像它在同一幀中產生了2個脈沖,而下一幀則沒有任何脈沖或移動,並且子畫面不穩定,這是隨機發生的。 該空間沒有引力(0,0);
如何使每一幀都有脈沖的身體保持良好的恆定運動? 我嘗試使用body.position.setxy()
但它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
因此,每隔一段時間,施加到對象上的速度的結果就不是恆定的,因為它會不時地呈現“提前”,並且我可以說自己“校正”自身。
確定找到了問題,如果其他人遇到了同樣的問題,請發布:
space.step(1 / / this._stage.frameRate,1,1)
由於沒有動力,可以解決此問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.