Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme dans exercice avec Zozor et la SDL

Anonyme
    13 août 2008 à 10:10:35

    Quand j'appuie sur "p" zozor ne s'arrête depuis toute a l'heure je cherche et je trouve pas
    V'la code
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    
    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *zozor = NULL;
        SDL_Rect positionZozor;
        SDL_Event event;
        int continuer = 1, pause = 0;
        int tempsPrecedent = 0, tempsActuel = 0;
    
        SDL_Init(SDL_INIT_VIDEO);
    
        ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("Gestion du temps en SDL", NULL);
    
        zozor = SDL_LoadBMP("zozor.bmp");
        SDL_SetColorKey(zozor, SDL_SRCCOLORKEY, SDL_MapRGB(zozor->format, 0, 0, 255));
    
        positionZozor.x = ecran->w / 2 - zozor->w / 2;
        positionZozor.y = ecran->h / 2 - zozor->h / 2;
    
        SDL_EnableKeyRepeat(10, 10);
    
    
        while (continuer)
        {
            SDL_PollEvent(&event); /* On utilise PollEvent et non WaitEvent pour ne pas bloquer le programme */
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
            case SDL_KEYDOWN:
            switch (event.key.keysym.sym)
            {
                case SDLK_p:
                if (pause == 0)
                    pause = 1;
                if (pause == 1)
                    pause = 0;
                    break;
            }
            break;
            }
    
            tempsActuel = SDL_GetTicks();
            if (tempsActuel - tempsPrecedent > 30 && pause == 0)
            {
            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));
            }
    
            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
            SDL_BlitSurface(zozor, NULL, ecran, &positionZozor);
            SDL_Flip(ecran);
        }
    
        SDL_FreeSurface(zozor);
        SDL_Quit();
    
        return EXIT_SUCCESS;
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      13 août 2008 à 10:24:52

      Désolé j'étais pris à autre chose quand je l'ai écrit.
      Quelqu'un pourrait m'aidez svp !!!!!
      • Partager sur Facebook
      • Partager sur Twitter
        13 août 2008 à 10:58:06

        if (pause == 0)
        pause = 1;
        if (pause == 1)
        pause = 0;
        break;

        Si pause = 0 alors tu mets pause à 1, puis, si pause = 1 (ce qui est désormais vrai) tu le remets à zéro, donc forcément, lol :p

        Fais :

        if (pause == 0) pause = 1;
        else pause = 0;
        break;
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          13 août 2008 à 11:06:01

          Lol je pouvais toujours essayer aller merci !!!
          • Partager sur Facebook
          • Partager sur Twitter

          Probleme dans exercice avec Zozor et la SDL

          × 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