Как ограничить частоту кадров в игровом цикле?C++

Программы на C++. Форум разработчиков
Anonymous
Как ограничить частоту кадров в игровом цикле?

Сообщение Anonymous »

Я пытаюсь ограничить частоту кадров в игровом цикле с помощью 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

Вернуться в «C++»