「ダンピング」プロパティを使用して、オブジェクトの速度を徐々に下げようとしています。その後、速度を使ってオブジェクトの位置を動かしたいと思います。これは次のようになります。
velocity.x *= velocity.damping;
velocity.y *= velocity.damping;
x += velocity.x;
y += velocity.y;
それよりもはるかに単純ではなく、正常に機能しますが、ここに私の問題があります。ゲームループの最後の更新にかかった時間(秒単位)を含むdeltaTime変数を使用しています。速度の適用は非常に簡単です。
x += velocity.x * deltaTime;
y += velocity.y * deltaTime;
しかし、ダンピングプロパティを乗算するときにdeltaTimeをどのように説明できますか?私の考えは、次のように、xまたはyの変位を見つけて、それにdeltaTimeを掛けることでした。
velocity.x += (velocity.x * velocity.damping - velocity.x) * deltaTime;
velocity.y += (velocity.y * velocity.damping - velocity.y) * deltaTime;
それは機能しないことが判明しました。理由はよくわかりませんが、テストするとさまざまな結果が得られます。単にダンピングを無視するか、1.0に設定すると、すべてが機能するため、問題は最後の2行にあるはずです。