Bonjour,
Je suis sur un projet et j'ai une erreur très très bizarre...
J'utilise une classe Application, fortement inspirée du livre sur SFML. Cette classe a une méthode écrite ainsi :
void Application::run()
{
sf::Clock clock;
sf::Time timeSinceLastUpdate = sf::Time::Zero;
const sf::Time TimePerFrame = sf::seconds(1/60);
while (mContext.window->isOpen())
{
timeSinceLastUpdate += clock.restart();
while (timeSinceLastUpdate > TimePerFrame)
{
timeSinceLastUpdate -= TimePerFrame;
handleEvents();
update(TimePerFrame);
std::cout << TimePerFrame.asSeconds() << " " << TimePerFrame.asMilliseconds() << " " << TimePerFrame.asMicroseconds() << std::endl;
if (mStates.isEmpty())
mContext.window->close();
}
render();
}
}
Comme vous le voyez, j'ai une variable TimePerFrame qui est une constante et qui est égale à sf::seconds(1/60).
Normalement, la valeur ne peut pas changer. Donc la ligne avec les std::cout devrais m'afficher :
1/60 100/6 100000/6
Mais la ligne que j'obtiens affiche que des zéros...
Pourquoi ???
Je suis sur Ubuntu 14.04
Edit : Je viens de recompiler SFML, rien n'y fait...
C'est-à-dire ?
Edit : Je viens de résoudre contourner mon problème.
sf::Clock clock;
while (mContext.window->isOpen())
{
handleEvents();
update(clock.restart());
render();
}
Mais si quelqu'un trouve une raison de mon ancien problème ce serait super !!