2011-10-27 51 views
2

要使動畫獨立於幀速率,是否需要將速度和加速度的增量值相乘?獨立於幀頻的動畫

// Multiply both acceleration and velocity by delta? 
vVelocity.x += vAcceleration.x * delta; 
vVelocity.y += vAcceleration.y * delta; 
position.x += vVelocity.x * delta; 
position.y += vVelocity.y * delta; 

我應該只將速度應用於速度而不是加速度?

回答

2

假設你的「增量」是自上次更新過去的時間量:

簡短的回答:是的。

龍答:檢查這樣的事情

的方法之一是看是否單位工作了。這是不能保證的,但通常如果你的部隊解決了問題,那麼你已經正確地計算了事情。

速度測量單位時間的距離,delta是時間。所以速度時間三角洲是(挑選任意單位米和秒)(m/s) * s = m。所以你可以看到速度時間三角洲確實創造了一個距離,所以看起來合理的位置。

加速度測量單位時間的速度,也就是說,使用相同的單位(m/s)/s。所以加速時間增量是((m/s)/s) * s = m/s。看起來像一個速度給我。我們很棒!

1

是的,有必要涉及速度和加速度都delta。它們都是根據時間定義的屬性(一個爲m/s,另一個爲m/s/s-單位可能有所不同),因此只要需要非瞬時更改delta,就應該使用它們。

+0

簡潔並很好地解釋。 – dxb