Как ограничить частоту кадров в игровом цикле?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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