我正在用 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()
关于c++ - 问题控制游戏帧率 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16109417/