Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème avec sf::Time  (Lu 3558 fois)

0 Membres et 1 Invité sur ce sujet

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Problème avec sf::Time
« le: Octobre 08, 2014, 06:18:42 pm »
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...
« Modifié: Octobre 08, 2014, 07:05:55 pm par Cmdu76 »

TheKingArthur

  • Invité
Re : Problème avec sf::Time
« Réponse #1 le: Octobre 08, 2014, 07:10:39 pm »
Tu obtient des 0 ou des 0 ET des 1 ? Car tu dis que sa devrait donner "1/60" mais le "/60" n'est écrit nul part.

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Problème avec sf::Time
« Réponse #2 le: Octobre 08, 2014, 07:14:03 pm »
J'obtiens : 0 0 0

(Dans la ligne que je montre c'est un exemple parce que le compilo ne montrerai pas de barre de fraction mais un arrondi)

TheKingArthur

  • Invité
Re : Problème avec sf::Time
« Réponse #3 le: Octobre 08, 2014, 07:15:37 pm »
Ok. Je ne vois pas de problème. Tu est sur que ton programme fonctionne bien ?

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Problème avec sf::Time
« Réponse #4 le: Octobre 08, 2014, 07:19:46 pm »
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 !!
« Modifié: Octobre 08, 2014, 08:09:53 pm par Cmdu76 »

kimci86

  • Full Member
  • ***
  • Messages: 128
    • Voir le profil
Re : Problème avec sf::Time
« Réponse #5 le: Octobre 08, 2014, 08:43:28 pm »
Une division entre des entiers donne un entier.

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Problème avec sf::Time
« Réponse #6 le: Octobre 08, 2014, 08:58:42 pm »
Merci beaucoup et je me dégoûte moi-même de ne pas avoir vu ça ...

TheKingArthur

  • Invité
Re : Problème avec sf::Time
« Réponse #7 le: Octobre 09, 2014, 09:00:58 pm »
A bah biensur ! Que suis-je bête de n'avoir pas remarquer ça !! Merci en tout cas.