【发布时间】:2012-06-08 01:54:42
【问题描述】:
这让我发疯了,无论如何,这是一个平常的故事,试图在我的非常简单的游戏中保证在任何运行它的 Windows 机器上都具有相同的速度。我通过指定 1/60 值来做到这一点,然后确保框架无法运行,直到该值自上次调用以来及时通过。由于某种原因,我遇到的问题是 1/60 等于 30hz,我必须将其设置为 1/120 才能获得 60hz。它在 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;
}
}
【问题讨论】:
标签: c++ frame-rate game-loop