Partage
  • Partager sur Facebook
  • Partager sur Twitter

Deplacement de la souris en SDL

Sujet résolu
    27 mai 2006 à 19:07:14

    Bonjour ! voila en m'inspirant beaucoup de l'exemple du tuto de m@theo dans les evenement avec le deplacement de zozor avec la souris(SDL_MOUSEMOTION), j'ai voulu faire exactement le meme programme mais j'ai mis un fond noir et au lieu de zozor, j'ai simplement mis un petit carre blanc. Mais lorsque je bouge la souris le petit carre me suit certe, mais il laisse plein d'autre petit carre derriere lui (un peu comme un paint quoi ) et moi ce n'est pas vraiment ca que je veux alors voila je pense que ca devrait etre une petit erreur dans la boucle, voila mon code :

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

    int main(int argc, char *argv[])
    {
        SDL_Init(SDL_INIT_VIDEO);
        SDL_Surface *screen = NULL, *rectangle = NULL;
        SDL_Rect position;

        position.x =0;
        position.y = 0;

        screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
        rectangle = SDL_CreateRGBSurface(SDL_HWSURFACE, 10, 10, 32, 0,0,0,0);



        int continuer = 1;
        SDL_Event event;
        while(continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                break;

                case SDL_MOUSEMOTION:
                    position.x = event.motion.x;
                    position.y = event.motion.y;
                break;
            }
        SDL_FillRect(rectangle, NULL, SDL_MapRGB(rectangle->format, 255,255,255));
        SDL_BlitSurface(rectangle, NULL, screen, &position);
        SDL_Flip(screen);
        }
        SDL_Quit;
        return EXIT_SUCCESS;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2006 à 19:11:07

      Normal : tu oublie d'effacer l'ecran avant de redessinner ton rectangle... Enfin, je pense que c'est ca...
      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2006 à 19:13:08

        Citation : Meothed

        Normal : tu oublie d'effacer l'ecran avant de redessinner ton rectangle... Enfin, je pense que c'est ca...


        on efface pas l'écran, on le remplie d'une couleur unie.
        • Partager sur Facebook
        • Partager sur Twitter
          27 mai 2006 à 19:27:54

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

          int main(int argc, char *argv[])
          {
              SDL_Init(SDL_INIT_VIDEO);
              SDL_Surface *screen = NULL, *rectangle = NULL;
              SDL_Rect position;

              position.x =0;
              position.y = 0;

              screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
              rectangle = SDL_CreateRGBSurface(SDL_HWSURFACE, 10, 10, 32, 0,0,0,0);



              int continuer = 1;
              SDL_Event event;
              while(continuer)
              {
                  SDL_WaitEvent(&event);
                  switch(event.type)
                  {
                      case SDL_QUIT:
                          continuer = 0;
                      break;

                      case SDL_MOUSEMOTION:
                          position.x = event.motion.x;
                          position.y = event.motion.y;
                      break;
                  }
              SDL_FillRect(rectangle, NULL, SDL_MapRGB(rectangle->format, 255,255,255));
              SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0,0,0));
              SDL_BlitSurface(rectangle, NULL, screen, &position);
              SDL_Flip(screen);
              }

              SDL_FreeSurface(rectangle);
              SDL_Quit;
              return EXIT_SUCCESS;
          }

          Et voila.
          Qu'est ce qu'on dit? ;)
          Et ... pense a ajouter un SDL_ShowCursor(0); avant ta boucle si c'est le rectangle que tu veux mettre comme curseur.
          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2006 à 20:29:58

            oki merci oussama, ca a marcher
            • Partager sur Facebook
            • Partager sur Twitter

            Deplacement de la souris en 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