【发布时间】:2013-04-19 16:35:44
【问题描述】:
我正在用 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 帧运行。我用来计算帧速率的类在其他已经有上限帧速率的程序中完美运行。
任何想法是什么问题?
【问题讨论】:
-
// Update Game是否能够在不到六十分之一秒内运行? -
您的游戏是否可能过于密集而无法管理 60 FPS?
-
是的,如果没有帧速率控制,它会以每秒 500 帧左右的速度愉快地运行。
标签: c++ frame-rate game-loop