Partage
  • Partager sur Facebook
  • Partager sur Twitter

quel est l'intérêt de coupler GetTicks et SDL_Delay

Sujet résolu
Anonyme
    9 mai 2006 à 19:07:13

    bonjour a tous voila j'aimerai savoir a quoi sers de coupler SDL_GetTicks()avec SDL_Delay vu que la précision de SDL_Delay n'étant pas trés convaincante l'utilisation avec GetTicks ne le sera pas plus si ? sinon pour quoi pas modifier se code :
    tempsActuel = SDL_GetTicks();
    if (tempsActuel - tempsPrecedent > 30)
    {
        positionZozor.x++;
        tempsPrecedent = tempsActuel;
    }
    else /* Si ça fait moins de 30ms depuis le dernier tour de boucle, on endort le programme le temps qu'il faut */
    {
        SDL_Delay(30 - (tempsActuel - tempsPrecedent));
    }


    par celui ci :

    SDL_Delay(30);
        positionZozor.x++;
        tempsPrecedent = tempsActuel;

    • Partager sur Facebook
    • Partager sur Twitter
      9 mai 2006 à 19:46:25

      Je me suis posé exactement la même question, et je me la pose encore !
      Un p'tit up...
      • Partager sur Facebook
      • Partager sur Twitter
        9 mai 2006 à 20:07:00

        En fait, l'avantage du premier code sur le second, est qu'il donne un nombre de FPS nettement plus régulier que le deuxième.
        En effet, tant que notre programme ne prend pas plus de 30ms pour faire calculer un passage, on garde un nombre de FPS parfaitement constant. Ainsi, même si un passage devient plus lourd à calculer (on lui laisse justement 30ms pour cela au maximum), on ne sentira pas de différence.
        Par contre, avec le deuxième, disons qu'il prend 3ms pour faire un passage car il n'y a pas beaucoup de calculs, ok, on a alors 33ms entre chaque image. Déjà, là on aura moins d'images par seconde que s'il y avait 10 fois plus de calcul à faire dans le premier code. Pas gagnant donc. Et pire, imaginons qu'il faille 30ms pour les calculs, 60ms entre chaque image, donc 2 fois plus qu'avec le premier code.
        Je sais pas si vous m'avez compris, j'suis pas doué pour expliquer ...
        • Partager sur Facebook
        • Partager sur Twitter
          9 mai 2006 à 20:12:02

          Je reprend vite fait l'explication de Punsh : En gros, pour les cas où le code dans la boucle est rapide, ça ne change pas beaucoup. Par contre, quand le code dans la boucle est lent, et bien il faut retirer son temps à l'attente, sinon il sera executé moins que toutes les 30 secondes.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            9 mai 2006 à 20:15:24

            A ok evidemment c'était ca :p merci beaucoup
            • Partager sur Facebook
            • Partager sur Twitter
              9 mai 2006 à 20:20:56

              Effectivement, on aurait eu dure de le deviner.

              Thanks a lot... :)
              • Partager sur Facebook
              • Partager sur Twitter

              quel est l'intérêt de coupler GetTicks et SDL_Delay

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown