Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mouvement de zozor

Je n'arrive pas à le faire apparaitre !

Sujet résolu
Anonyme
    11 avril 2006 à 10:42:10

    Bonjour tout le monde ! J'ai un petit problème, qui à mon avis est très simple à résoudre mais je ne vois pas mon erreur...et ça s'avère TRES chiant :D Voila, je n'arrive pas à faire apparaitre zozor ! Pourtant je définis sa position, je le rend transparent et je le blit, et puis ça doit marcher vu que le programme s'ouvre :-° Bon voila mon code source, et si l'erreur est ultra simple, ne m'enfoncez pas, je débute ^^
    #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;

        SDL_Init(SDL_INIT_VIDEO);

        ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
        SDL_WM_SetCaption("Gestion des évènements en SDL", NULL);
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));

        /* Chargement de Zozor */
        zozor = SDL_LoadBMP("zozor.bmp");
        SDL_SetColorKey(zozor, SDL_SRCCOLORKEY, SDL_MapRGB(zozor->format, 0, 0, 255));

        /* On centre Zozor à l'écran */
        positionZozor.x = ecran->w / 2 - zozor->w / 2;
        positionZozor.y = ecran->h / 2 - zozor->h / 2;

        SDL_Flip(ecran);

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


        SDL_FreeSurface(zozor);
        SDL_Quit();

        return EXIT_SUCCESS;
    }


    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      11 avril 2006 à 10:46:15

      :) tu n'a pas mis sa grand malin :


      #include <SDL/SDL_image.h>


      • Partager sur Facebook
      • Partager sur Twitter
        11 avril 2006 à 10:53:34

        non rien à voir ,il n'a pas utiliser IMG_Load , donc il n'a pas besoin d'entrer cet include , par contre tu as oublier SDL_BlitSurface qui te permet d'integrer ton image, tu rajoutera donc :
        SDL_BlitSurface(zozor,NULL,ecran,&positionZozor);
        • Partager sur Facebook
        • Partager sur Twitter
          11 avril 2006 à 11:03:10

          ben voyons... si tu le met transparent, c'est normal qu'ont va pas le voir...
          • Partager sur Facebook
          • Partager sur Twitter
            11 avril 2006 à 11:05:29

            rien à voir , ce qui sera transparent c'est le bleu qui est autour de zozor -___-
            • Partager sur Facebook
            • Partager sur Twitter
              11 avril 2006 à 11:22:28

              Exact, tu as juste oublié de "coller" la surface sur l'écran, il te manque donc un SDL_BlitSurface juste avant SDL_Flip !
              • Partager sur Facebook
              • Partager sur Twitter

              If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                11 avril 2006 à 11:31:06

                Juste une question , les variables w et h sont déjà au départ connues par la SDL, parce qu'il ne les a jamais initialisées dans son code ? :o
                • Partager sur Facebook
                • Partager sur Twitter
                  11 avril 2006 à 11:39:06

                  les variable x et y font font partie de la structure SDL_Rect, on à pas besoin de les initialiser car la valeur sera changer avant le blit
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    11 avril 2006 à 11:44:21

                    Merci a tous !! C'est vrai que mon erreur est toute bete ^^ Oula mon post est populaire j'ai l'honneur d'avoir un message de Monsieur Mateo xD
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Mouvement de zozor

                    × 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