Site Loader

Une clocks est un outil qui sert de chronomètre/compteur de temps écoulé ! Elle est très pratique pour gérer le déplacement de personnage, la vitesse d’animation d’un sprite, le temps de rechargement de cooldown pour les jeux vidéos etc…

Comment l’utiliser ?

Rien de plus simple ! Il vous suffit de peu de connaissance ! Voilà ce dont vous aurez besoin :

// Inclure les .h de la librairie
#include <SFML/System/Export.h>
#include <SFML/System/Time.h>
#include <SFML/System/Types.h>

// Supprime la clock et donc son pointeur
void sfClock_destroy(sfClock *clock);

// La fonction qui permet de créer une clock et de lancer le chrono
sfClock *sfClock_create(void);

// Redémarre une clock (temps écoulé = 0)
sfTime 	sfClock_restart (sfClock *clock);

// Récupère un sfTime qui contient le temps écoulé de notre clock
sfTime sfClock_getElapsedTime(const sfClock *clock);

// Fonctions de conversions d'un sfTime en Int/Float
float sfTime_asSeconds(sfTime time);
sfInt32 sfTime_asMilliseconds(sfTime time);
sfInt64 sfTime_asMicroseconds(sfTime time);

// On peut récupérer le temps écoulé d'une clock en int de cette façon
sfTime_asSeconds(sfClock_getElapsedTime(clock));

Maintenant, passons à la pratique !
Nous allons afficher un message dans le terminal toutes les secondes.

int main(void)
{
        sfClock *clock = sfClock_create();

        while(true) {
                if(sfTime_asMilliseconds(sfClock_getElapsedTime(clock)) > 1000) {
                        sfClock_restart(clock);
                        printf("vous comprenez l'utilitez maintenant");
                }
        }
        sfClock_destroy(clock);
        return (0);
}

Analysons un peu ce code:

  • On créer une clock avec sfClock_create()
  • On entre dans une boucle, infini pour les besoins du tuto
  • On récupère le temps écoulé de notre clock avec sfClock_getElapsedTime() puis on le convertit en millisecondes avec sfTime_asMilliseconds()
  • Si le temps écoulé dépasse 1000 millisecondes (soit 1 seconde), on affiche un message et on remet le temps écoulé de la clock à 0 avec sfClock_restart()

Ici on se contente d’afficher un message toutes les secondes. Dans une application graphique plus complexe, vous allez pouvoir par exemple déplacer un personnage en fonction des inputs et gérer sa vitesse de déplacement grâce à une clock.

Conclusion !

Voilà, maintenant, vous avez tout les outils en main pour utiliser les clocks. J’éspère que le tuto vous aura plus, n’hésitez pas à nous contacter si vous avez besoin de plus d’éxplication ou de tips 😉 !!!

Post Author: Samy Boulenoir

2 Replies to “CSFML, comment utiliser les clocks”

    1. Hey Nikou,
      Pourrais-tu préciser ce que tu n’as pas compris dans le tuto ? 🙂
      Les clocks te permettent de limiter des actions de ton programme dans le temps pour éviter qu’il fonctionne plus vite que prévu (en fonction de la puissance de l’ordinateur).
      Sans une clock, la vitesse de déplacement d’un personnage va varier en fonction du temps que l’ordinateur va prendre à exécuter le déplacement. Avec une clock il sera limité.
      Si tu as d’autres questions, n’hésite pas !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *