Chrono

Résolu
wallaby83140 Messages postés 9 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 10 mai 2011 - 21 févr. 2010 à 16:41
wallaby83140 Messages postés 9 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 10 mai 2011 - 21 févr. 2010 à 17:37
Bonjour,

Je travail en ce moment sur un jeu.
Et je me suis dit que rajouter un chronomètre a celui ci.
Mais je n'y arrive pas du tout!
Si quelqu'un pourrait me dire comment faire.


Au faite j'entend par chronometre : "heure : minute : seconde"

Je travaille sous C::B en SDL.

Merci d'avance.

3 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 févr. 2010 à 16:57
Salut,

Regarde cette doc.

Exemple :

#include <stdio.h>
#include <time.h>

int main()
{
  char lpBuffer[50];
  time_t nRawtime;
  struct tm* timeInfo;

  time(&nRawtime);
  timeInfo = localtime(&nRawtime);

  strftime(lpBuffer, 50, "%H : %M : %S", timeInfo);
  puts(lpBuffer);
  
  return 0;
}
3
wallaby83140 Messages postés 9 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 10 mai 2011
21 févr. 2010 à 17:37
Voilà j'ai resolu mon problème.


Je vais mettr mon sourceen ligne pour ce qui aurons le même problème que moi.

int main(int argc, char *argv[])
{
   SDL_Surface *ecran NULL, *texte NULL;
    SDL_Rect position;
   SDL_Event event;
   TTF_Font *police = NULL;
    SDL_Color couleurNoire {0, 0, 0}, couleurRouge {255, 0,0};
    int continuer = 1;
    int tempsActuel 0, tempsPrecedent 0, compteur = 0, heure = 0, minute = 0, seconde = 0, Millisecondes=0;
    char temps[20] = ""; /* Tableau de char suffisamment grand */
    clock_t start, end;
    double elapsed;


    SDL_Init(SDL_INIT_VIDEO);
    TTF_Init();

    ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
    SDL_WM_SetCaption("Gestion du texte avec SDL_ttf", NULL);


    /* Chargement de la police */
    police = TTF_OpenFont("angelina.ttf", 65);

    /* Initialisation du temps et du texte */
    tempsActuel = SDL_GetTicks();
    sprintf(temps, "Temps : %d : %d : %d ", heure, minute, seconde);
    texte = TTF_RenderText_Shaded(police, temps, couleurNoire, couleurRouge);

    while (continuer)
    {
        SDL_PollEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
                break;
        }

        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));


        tempsActuel = SDL_GetTicks();
        if (tempsActuel - tempsPrecedent >= 100) /* Si 100ms au moins se sont écoulées */
                {
            Millisecondes+=tempsActuel - tempsPrecedent;
            if(Millisecondes>=1000)
           {
                Millisecondes=Millisecondes%1000;
                seconde ++;
            }
            if(seconde >= 60)
            {
                minute ++;
                seconde=seconde%60;
            }
            if(minute >= 60)
            {
                heure ++;
                minute=minute%60;
            }

           sprintf(temps, "Temps : %d : %d : %d", heure, minute, seconde );
             /* On écrit dans la chaîne "temps" le nouveau temps */
           SDL_FreeSurface(texte); /* On supprime la surface précédente de la mémoire avant d'en charger une nouvelle (IMPORTANT) */
           texte = TTF_RenderText_Shaded(police, temps, couleurRouge, couleurNoire); /* On écrit la chaine temps dans la SDL_Surface */
            tempsPrecedent = tempsActuel; /* On met à jour le tempsPrecedent */
        }

        position.x = 180;
        position.y = 210;
        SDL_BlitSurface(texte, NULL, ecran, &position); /* Blit du textecontenant  le temps */
        SDL_Flip(ecran);

    }

    TTF_CloseFont(police);
    TTF_Quit();

    SDL_FreeSurface(texte);
    SDL_Quit();


    return EXIT_SUCCESS;
}


En èspérant que cela vous serve.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 févr. 2010 à 16:58
Ah heu... Pour une question C, merci de poster sur cppfrance dans un thème C.

[ Déplacé sur cppfrance.com ]
0
Rejoignez-nous