Partage
  • Partager sur Facebook
  • Partager sur Twitter

Timer sur Jeu SDL2

Conception d'un timer sur un jeu avec interface graphique en c

Sujet résolu
    7 avril 2021 à 11:49:42

    Bonjour, 

    Dans le cadre d'un projet étudiant, je dois réaliser un jeu avec interface graphique. Le but est de coder quelques fonctionnalités et d'insérer quelques algorithmes.

    J'ai décidé de coder une sorte de Mario Bros (ressemblant à celui sur DS), sur 3 niveaux. On commence au niveau 1 et le timer n'est pas réinitialisé tant qu'on a pas fini le 3e et dernier niveau.

    Je suis rendu à l'étape où je dois coder ce timer.

    J'ai décidé de le faire partir de 0. Le but est de l'incrémenter chaque seconde, de le mettre en pause en cas de pause, ou de le réinitialiser quand on terminé les 3 niveaux.

    Le problème c'est qu'il ne se réinitialise pas et qu'il ne se met pas en pause quand on appuie sur ECHAP.

    Il faut arriver à synchroniser le code avec l'interface graphique de manière à avoir un rendu cohérent, et c'est ça qui me pose problème.

    Donc voilà, je demande votre aide si possible car j'y ai passé du temps et je ne trouve pas la solution qui à l'air pourtant simple.

    • Partager sur Facebook
    • Partager sur Twitter
      7 avril 2021 à 15:51:15

      Salut,

      Je pense que tu te compliques la vie pour rien.

      Tu as la fonction SDL_GetTicks qui te donne le nombre de millisecondes passées depuis.... en réalité on s'en fout, mais depuis que tu as fait le SDL_init

      Bon. Dès que tu démarres ton jeu, tu appelles SDL_GetTicks et tu notes le résultat (temps de départ). "timestart" par exemple.

      Dès que tu finis tes niveaux, tu rappelles SDL_GetTicks, et tu fais.... une soustraction. Et c'est fini. Tu as le temps total.

      Si tu veux gérer la pause, alors quand tu appuies sur pause, tu notes le temps dans une autre variable "pausestart", dès que tu enlèves la pause tu fais la différence avec le temps du début de la pause, et tu ajoutes ce temps à une variable "tempsdepause", qui ne pourra donc qu'augmenter si tu fais plusieurs pauses...

      A la fin de ton jeu, tu soustrairas "tempsdepause" a "tempstotal" ....

      Tu vois, il y a plusieurs façons de chonométrer : soit tu prends un chronomètre actif, et touts les secondes tu incrémentes ou je ne sais quoi de contraignant....

      Soit tu regardes l'heure quand il faut et tu fais des soustractions à la fin....

      -
      Edité par Fvirtman 7 avril 2021 à 15:53:29

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

      Timer sur Jeu SDL2

      × 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