簡體   English   中英

Nape空間步長和恆定沖量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM