私は、ゲームオブジェクトの速度はFPSによって妨げられるべきではなく、時間に基づくべきであると読みました。更新/描画コードを分離して、描画速度を制限せずにパフォーマンスを最大化し、時間に基づいて一定のロジック更新速度を提供するにはどうすればよいですか?
私の現在の疑似コードは次のとおりです
loop
{
draw();
if (ticksElapsed() > 100)
{
update();
ticks+= ticksElapsed();
}
}
問題は、描画コードがupdate()レートのパフォーマンスを妨げていることです。また、スリープ状態になると、描画機能とロジック機能の両方が使用できなくなるため、CPUが100%消費されます。
私もSDLを使用していますが、vsyncオプションがないようです。固定および可変時間ステップという用語も聞いたことがありますが、sleep()でそれをどのように行うことができるかわかりません。