如何限制游戏循环fps?



我试图限制我的游戏循环fps使用SFML,但它不能正常工作。

如果我除以60/1000,结果不应该是每帧得到60 FPS的时间吗?

我输入60,但我只得到33,有人知道我在哪里出错了吗?

Here is my header
class Game 
{
//..
sf::Clock deltaTimeClock;
float deltaTime;
const float frameTime = 60.0f/ 1000.0f;
bool aSecondPassed();
float currentFPS = 0;
sf::Clock second;
//..
}

我实现

//...

void Game::updateDeltaTime()
{
this->deltaTime = (this->deltaTimeClock.restart().asSeconds());

}

//...

void Game::run()
{
while (this->window->isOpen())
{
this->showFPS();
this->tick();
this->render();

while (deltaTime < this->frameTime)
{
this->deltaTime = this->deltaTimeClock.getElapsedTime().asSeconds();

}

this->updateDeltaTime();
}
}

通过将循环条件更新为

获得稳定的60 fps这→deltaTimeClock.getElapsedTime () .asSeconds () & lt;这→frameTime

但是我会在这个问题上研究更多,也许有更好的方法来实现它。谢谢大家的帮助。

相关内容

  • 没有找到相关文章

最新更新