Счетчик секунд SFML - PullRequest
0 голосов
/ 01 мая 2018

Я делаю игру, используя библиотеку SFML, я хочу реализовать функцию, отображающую секунды на экране с момента запуска программы, и она будет увеличиваться до закрытия окна. Я попробовал это:

sf::Clock clock;
while (window.isOpen())
{
    sf::Time elapsed = clock.restart();
    updateGame(elapsed);

}

Но я понятия не имею, как это работает или даже если это правильная функция. Вот мой код пока https://github.com/basmaashouur/GamesLib/blob/master/cards/main.cpp

1 Ответ

0 голосов
/ 01 мая 2018

Есть несколько способов узнать количество секунд.

Прежде всего, вы можете использовать эксклюзивный sf::Clock для этого, который никогда не сбрасывается:

sf::Clock clock;

const unsigned int seconds = static_cast<unsigned int>(clock.getElapsedTime().asSeconds());

В качестве альтернативы вы можете использовать sf::Time для накопления времени между кадрами (например, внутри вашей функции updateGame()):

sf::Clock clock;
sf::Time time;

time += clock.restart();

const unsigned int seconds = static_cast<unsigned int>(time.asSeconds());
...