Witam
Napisałem aplikacje w której implementuje pętle stało krokową
Jednak użycie tej pętli powoduje wyświetlanie się zawartości okna w sposób błędny.
Oto skrócony kod który ukazuje problem.
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <iostream>
int main()
{
sf::RenderWindow window(sf::VideoMode(640,480), "SFML works!");
sf::Time timeLastUpdate = sf::Time::Zero;
sf::Clock gameClock;
const sf::Time stepTime = sf::seconds(1/60);
///Zombie code - don't touch
///const uint64_t UPDATES_PER_SECOND = 33;
///const uint64_t MILLISECONDS_PER_UPDATE = 1000/UPDATES_PER_SECOND;
while (window.isOpen())
{
sf::Time time = gameClock.restart();
timeLastUpdate += time;
while(timeLastUpdate > stepTime)
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)window.close();
}
timeLastUpdate -= stepTime;
//update(stepTime);
}
window.clear();
/////Drawing...
window.display();
}
return 0;
}
Zamiast tego co rysuje aplikacja na oknie widoczne jest to co było pod oknem w momencie jego tworzenia - tutaj CodeBlocks i terminal
Problem spowodowany jest tym że moja stało krokowa pętla nie pozwala na wykonanie
window.display();
Możecie mi wskazać błąd w mojej pętli który to powoduje ?.
Używam GNU/Linux 18 Cinnamon, Codeblocks 16.01 ,SFML i GCC