Я работаю над небольшой SFML-игрой на C++. То, что я пытаюсь сделать, - начать игру с вводного текста, который мигает двумя разными цветами, например, «Arturo Girona Presents». Я заставил его работать, используя счетчик, который увеличивался внутри цикла while (window.isOpen()), но затем я попытался использовать sf :: Clock, чтобы убедиться, что это проблесковый взгляд менее случайный. Однако по какой-то причине часы сохраняют сброс после каждого цикла, когда я тоже не сказал об этом явно, поэтому он не переходит с текстового экрана. Как синхронизация часов сама по себе и как ее исправить? Вот мое время цикла:Почему мой sf :: Clock в SFML перезагружается сам по себе?
int count = 0;
sf::Clock clock;
int timer = clock.getElapsedTime().asMilliseconds();
while (window.isOpen())
{
count++;
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
while (timer < 5000)
{
if (timer < 200 && introText1.getColor() == sf::Color::Red)
{
introText1.setColor(sf::Color::White);
window.draw(introText1);
window.display();
}
if (timer < 200 && introText1.getColor() == sf::Color::White)
{
introText1.setColor(sf::Color::Red);
window.draw(introText1);
window.display();
}
break;
}
if (timer == 5000) {
window.clear();
window.draw(door);
window.draw(doorWindow1);
window.display();
}
cout << timer << endl;
if (timer > 0)
cout << "Time is moving" << endl;
}
Есть ли 'cout << таймер << endl;' продолжать показывать тот же номер? Кажется, вы ничего не изменили в петле – doctorlove