ゲームでキャラクターがジャンプするのに 1 秒かかったとします。FPS が 10fps、30fps、100fps などの場合、ゲーム開発者はどのようにしてそのジャンプ時間を 1 秒に抑えることができるでしょうか? - ゲームの fps が基本的にゲームプレイの速度に影響を与えるのをどのように停止しますか?
これを行う特定の方法があると思うので、正確には何なのか疑問に思っていました。
ありがとう、アレックス!
ゲームでキャラクターがジャンプするのに 1 秒かかったとします。FPS が 10fps、30fps、100fps などの場合、ゲーム開発者はどのようにしてそのジャンプ時間を 1 秒に抑えることができるでしょうか? - ゲームの fps が基本的にゲームプレイの速度に影響を与えるのをどのように停止しますか?
これを行う特定の方法があると思うので、正確には何なのか疑問に思っていました。
ありがとう、アレックス!
通常、タイマーを使用して、最後のフレームがレンダリングされてから経過した時間を記録します。このテーマに関する多くの記事とサンプルが Google から入手できます。
もちろん、FPS を何でも許すと、非現実的なシミュレーションになってしまいます。このため、「固定時間ステップ」という概念があります。
「タイムステップを修正してください!」(およびそのページにリンクされている以前の記事)は、特にこのテーマについてよく読んでいます。
大きな主題の短い答え
あなたのゲームは、フレームシーケンス番号ではなく、参照からの時間遅延によって決定される「アニメーション」を配置する必要があると思います...
1)例:3つの描画のみで1秒のジャンプ...考慮する必要がありますdraw#1 a t0 draw#2 t+0.25 と t+0.75 の間の場合、draw#3 t+0.75 と t+1 の間の場合
2) 例: 移動/アニメーションが positionX(int RelativeFrameNumber) のような式によって決定される場合positionX(long relativeTimeInMillisecond) のような時間を使用して関数を変更することを検討する必要があります
またはゲームループに小さな変更を加えて
3)継続的/固定の計算されたフレームレートのパフォーマンスに応じて調整される「待機」コードをループに配置します
その助けを願って