Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mon compteur

    16 juin 2006 à 9:44:30

    bonjour je vien de faire un compteur qui compte toute les microscondes mais il y a un bug quand j'ouvre le programme le compteur se fige au lieu de compter voici mon code

    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_ttf.h>

    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};
        int continuer = 1, compteur = 0;
        char temps[20] = "";
       
        SDL_Init(SDL_INIT_VIDEO);
        TTF_Init();
       
        ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
       
        SDL_BlitSurface(texte, NULL, ecran, &position);
       
        compteur = SDL_GetTicks();
       
        sprintf(temps, "Temps : %d", compteur);
       
        police = TTF_OpenFont("Angelina.ttf", 65);
       
        texte = TTF_RenderText_Blended(police, temps, couleurNoire);
       
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
       
        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
            }
           
            SDL_FreeSurface(texte);
            texte = TTF_RenderText_Blended(police, temps, couleurNoire);
            position.x = ecran->w / 2 - texte->w / 2;
            position.y = ecran->h / 2 - texte->h / 2;
            SDL_BlitSurface(texte, NULL, ecran, &position); /* Blit du texte par-dessus */
            SDL_Flip(ecran);
        }
       
        TTF_CloseFont(police); /* Doit être avant TTF_Quit() */
        TTF_Quit();
       

        SDL_FreeSurface(texte);
        SDL_Quit();


        return EXIT_SUCCESS;
    }

    • Partager sur Facebook
    • Partager sur Twitter
      16 juin 2006 à 10:01:35

      tu utiliser SDL_WaitEvent qui attend un evenement en bloquant le programme.
      tu devrait mettre SDL_PollEvent
      ;)
      • Partager sur Facebook
      • Partager sur Twitter
        16 juin 2006 à 10:10:09

        c'est une bonne idée mais sa ne marche pas j'avais déja essayé :'(
        • Partager sur Facebook
        • Partager sur Twitter
          16 juin 2006 à 10:24:15

          Euh déjà dans le premier SDL_Blit tu mets &position sans l'avoir bien définie (x, y, hauteur, largeur).

          Ensuite t'as mis le sprintf qui crée ton texte en dehors de ta boucle! Donc le texte ne changer jamais, ce sera toujours celui qui a été crée au lancement.

          • Partager sur Facebook
          • Partager sur Twitter

          Mon compteur

          × 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