私はこれについて典型的な物理方程式を試しましたが、方程式は一定の加速度を扱い、正しく機能するように変更する必要があるため、実際には機能しません。基本的に、私は広範囲の速度で走行できる車を持っており、その進路の終わりに達すると、一定の距離と時間で減速して停止する必要があります。
つまり、次のようになります。
V0、または現在の速度
Vf、または到達したい速度(通常は0)
t、またはパスの終わりに到達するのにかかる時間
d、または変更時に移動したい距離V0からVfへ
a、またはV0からVfに移動するために必要な加速度 を計算したい
これがプログラミング固有の質問になる理由はa、車が停止し続けるため、タイムステップごとに再計算する必要があるためです。したがって、V0常にV0最後のタイムステップから、最後のタイムステップで計算されplusたものに変更されます。aつまり、基本的にはゆっくりと停止し始め、最終的には実際の車のように突然停止します。
編集:
大丈夫、素晴らしい反応をありがとう。私が必要としていたことの多くは、これについて考える手助けをすることでした。皆さんからさらにいくつかのアイデアが得られたので、具体的に説明します。
目的地からの車を持っているcので。で運転しています。移動するまでの速度に達する加速度を見つけたいと思います。64 pixelsd=642 pixels per timesteptimestep is 1/60 of a seconda0.2 pixels per timestepd
d = 64 //distance
V0 = 2 //initial velocity (in ppt)
Vf = 0.2 //final velocity (in ppt)
また、これはゲームループで発生するため、変数deltaは各アクションに渡されます。これはmultiple of 1/60s that the last timestep tookです。つまり、1/60delta秒かかった場合は1.0、1/30秒かかった場合deltaは0.5になります。加速が実際に適用される前に、このデルタ値が乗算されます。同様に、車が再び移動する前に、その速度にデルタ値が掛けられます。これはかなり標準的なものですが、私の計算で問題を引き起こしている可能性があります。