Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec SDL_AddTimer

Sujet résolu
    19 septembre 2017 à 17:48:13

    Bonjour tout le monde,

    je suis en train de tester les timers et j'ai un petit petit soucis ... lorsque je lance le programme l'image attend 1 seconde comme demandé puis se déplace à la vitesse de la lumière (enfin presque) ...

    voici mon code :

    #include <stdio.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>
    
    Uint32  ft_move(Uint32 intervalle, void *parametre)
    {
                    SDL_Rect        *positionzozor;
                    positionzozor = parametre;
                    positionzozor->x++;
    
                    return (intervalle);
    }
    
    int     main(int argc, char **argv)
    {
            int             boolean;
            SDL_Surface     *screen;
            SDL_Surface     *zozor;
            SDL_Rect        position;
            SDL_Event       event;
            SDL_TimerID     timer;
            
            boolean = 1;
            position.x = 0;
            position.y = 0;
    
            SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER);
            
            zozor = SDL_LoadBMP("zozor.bmp");
            screen = SDL_SetVideoMode(640, 320, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);
                    
            while (boolean)
            {
                    SDL_PollEvent(&event);
                    if(event.type == SDL_QUIT || event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE)
                            boolean = 0;
                    timer = SDL_AddTimer( 1000, ft_move, &position);
                    SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 255));
                    SDL_BlitSurface(zozor, NULL, screen, &position);
                    SDL_Flip(screen);
            }
            SDL_RemoveTimer(timer);
            SDL_FreeSurface(zozor);
            SDL_Quit();
    }

    Qu'en pensez-vous ?

    Cordialement,

    Quentin Parrot

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2017 à 18:03:42

      Hello,

      QuentinParrot a écrit:

      j'ai un petit petit soucis ... lorsque je lance le programme l'image attend 1 seconde comme demandé puis se déplace à la vitesse de la lumière (enfin presque) ...

      Ah bin oui, le problème est clair: SDL_AddTimer() se met en-dehors de la boucle (avant, bien sur).

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        19 septembre 2017 à 18:18:11

        Mearf effectivement ça marche mieux ... Je suis un peu bebete parfois ....

        Merci Edgarjacobs !!

        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec SDL_AddTimer

        × 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