问题控制游戏帧率C ++

时间:2013-04-19 16:35:44

标签: c++ frame-rate game-loop

我正在使用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帧。我用来计算帧速率的类在其他已经具有上限帧速率的程序中完美运行。

任何想法是什么问题?

1 个答案:

答案 0 :(得分:3)

由于getTickCount的解决方案。该功能仅提供10-16 ms的分辨率Microsoft GetTickCount()