0
私のプログラムのdeltaTimeを使用することをお勧めしたいと思います(プログラムが実行されている現在の時間とプログラムが最後の反復以降に実行された時間の間のミリ秒単位の変化)カメループ)を使って敵の健康損失をコントロールします。デルタタイムで健康損失をコントロールする必要がありますか? C++/SDL2
ので、代わりのこのやって:
...
enemy.setHealth(enemy.getHealth() - 5);
...
を私はこれを行う:
...
enemy.setHealth(enemy.getHealth() - (5 * deltaTime));
...
アイデアは、他のコンピュータ上の類似した時に健康な減少を作ることですが、これは必要なのか?
ありがとうございます。
キャッピングfpsesはより良いソリューションかもしれません。 – Ven
SDL_Delay()を使用してプログラムを遅らせるのと同じように、キャッピングを意味しますか? – NJSADFNSDFNSFDN
上限は高くなりますが、それ以下ではありません(例えば、フレーム内で非常に多くのことが起こり、ターゲットのマシンがキャップフレームレートでそれをレンダリングできず、ロジックが遅くなりますが、そのような振る舞いをしていますが、固定(つまり、フレームレートに関係なく一定の時間間隔で計算を実行する)と、実際に渡された時間(あなたの 'deltaTime')を掛けることの2つの解決方法があります。いくつかの点では、1つの解決策がより良いかもしれません(例えば、物理がほぼ常に固定ステップで計算されます)が、与えられたタスクでは明確な勝者はありません。もっと好きなものを選んでください。 – keltar