とにかく、これはいつもの話で、私の非常に単純なゲームで、それを実行するすべての Windows マシンで同じ速度を保証しようとして、私を怒らせています。1/60 値を指定することでそれを行い、最後に呼び出されてからその値が経過するまでフレームが実行されないようにします。私が抱えている問題は、何らかの理由で 1/60 が 30hz に等しいことです。60hz を取得するには、1/120 に設定する必要があります。また、60hz の強打ではなく、少し高速です。
ここに貼り付けたら、何か問題があるかどうか教えてもらえますか? またはそれを行うためのより正確な方法はありますか?
float controlFrameRate = 1./60 ;
while (gameIsRunning)
{
frameTime += (system->getElapsedTime()-lastTime);
lastTime = system->getElapsedTime();
if(frameTime > controlFrameRate)
{
gameIsRunning = system->update();
//do stuff with the game
frameTime = .0f;
}
}