发行控制游戏帧率的c++

Issue controlling game frame rate C++

本文关键字:c++ 帧率 游戏 控制      更新时间:2023-10-16

我正在用c++编程一款游戏,我在创造一种让游戏每秒只更新60次的方法时遇到了麻烦。我写的代码看起来应该可以工作,但是帧速率实际上是每秒44帧而不是每秒60帧。

const int               FRAMES_PER_SECOND = 60;
const int               FRAME_CONTROL = (1000 / FRAMES_PER_SECOND);
double                  lastFrameTime;
double                  currentFrameTime;
void GameLoop()
{
    currentFrameTime = GetTickCount();
    if ((currentFrameTime - lastFrameTime) >= FRAME_CONTROL)
    {
        lastFrameTime = currentFrameTime;
        // Update Game.
    }
}

所以,是的,它应该是60帧,但它实际上是44帧。我用来计算帧率的类在其他已经有帧率上限的程序中工作得很好。

你知道是什么问题吗?

这是由于getTickCount的分辨率。该函数只给出10-16毫秒的分辨率Microsoft GetTickCount()