2011-10-27 12 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

は前回の更新から経過した時間の量である:

短い答え:はい。

長い答え:この種のものをチェックする

一つの方法は、ユニットがうまくかどうかを確認することです。それは保証されていませんが、通常あなたのユニットがうまくいくならば、あなたは正しく物事を考え出しました。

速度は単位時間あたりの距離を測定し、デルタは時間です。したがって、速度時間デルタは(任意の単位メートルと秒をピッキングする)(m/s) * s = mです。だから、速度の時間デルタは距離を作成するので、位置が合理的に見えることがわかります。

単位時間あたりの加速度を測定します。すなわち、同じ単位で表します。(m/s)/s。したがって、加速時間デルタは((m/s)/s) * s = m/sです。私の速度のように見えます。よかったです!

1

はい、deltaに速度と加速度の両方を含める必要があります。これらは両方とも時間に関して定義されているプロパティです(m/s、その他の場合はm/s/sが異なる場合があります)ので、瞬間的に変更する必要がある場合はdeltaを使用してください。

+0

簡潔に説明されています。 – dxb

関連する問題