Я пытаюсь ограничить частоту кадров в игровом цикле с помощью SFML, но это работает неправильно.
Если я разделю 60/1000, результат не должен быть временем получения каждого кадра 60 кадров в секунду?
Я поставил 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();
}
}
Подробнее здесь: https://stackoverflow.com/questions/760 ... e-loop-fps