Partage
  • Partager sur Facebook
  • Partager sur Twitter

Elle veus pas s'afficher !!!!!!!!!!!!!

    20 août 2006 à 17:39:31

    resalut voila mon code :

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

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *zozor = NULL , *fond = NULL , *grunt = NULL;;
        SDL_Rect positionzozor , position , positiongrunt;
        positiongrunt.x = 0;
        positiongrunt.y = 0;
        position.x = 0;
        position.y = 0;
        positionzozor.x = 510;
        positionzozor.y = 20;
        SDL_Event event;
        int continuer = 1;

        SDL_Init(SDL_INIT_VIDEO);

        ecran = SDL_SetVideoMode(718, 540, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("Gestion des evenements en SDL", NULL);

        fond = IMG_Load("Sanstitre.bmp");
        SDL_BlitSurface(fond , NULL , ecran , &position);

            SDL_Flip(ecran);

        zozor = IMG_Load("link.bmp");
        SDL_SetAlpha(zozor, SDL_SRCALPHA, 128);
        SDL_BlitSurface(zozor , NULL , ecran , &positionzozor);


            SDL_Flip(ecran);


        grunt = IMG_Load("grunt.jpeg");
        SDL_BlitSurface(grunt , NULL , ecran , &positiongrunt);


        SDL_Flip(ecran);


        SDL_EnableKeyRepeat(10, 10);

        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                  case SDL_KEYDOWN:
                switch (event.key.keysym.sym)
                {
                    case SDLK_UP: // Flèche haut
                            positiongrunt.y--;
                            break;
                        case SDLK_DOWN: // Flèche bas
                            positiongrunt.y++;
                            break;
                        case SDLK_RIGHT: // Flèche droite
                            positiongrunt.x++;
                            break;
                        case SDLK_LEFT: // Flèche gauche
                            positiongrunt.x--;
                            break;
                }
                break;

                SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); /* On efface l'écran */
            SDL_BlitSurface(grunt, NULL, ecran, &positiongrunt); /* On place zozor à sa nouvelle position */
            SDL_Flip(ecran); /* On met à jour l'affichage */

            }
            }



        SDL_FreeSurface(zozor);
        SDL_FreeSurface(fond);
        SDL_FreeSurface(grunt);
        SDL_Quit();

        return EXIT_SUCCESS;

        }









    je veus afficher grunt en haut a gauche et pouvoir le deplacer avec le clavier mais l'image ne s'affiche meme pas ! pourquoi ?

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2006 à 17:59:25

      Il s'agit d'une erreur d'accolades de ton switch(event.type)..Celle située en dessous de l'instruction SDL_Flip(ecran) doit etre replacée au dessus de SDL_FillRect(..). ;)
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2006 à 18:05:10

        la c'est pire , les 2 1er image apparaissent puis disparaissent est c'est tout blanc !
        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2006 à 20:07:59

          Avant le grunt, blit le fond puis le "zozor".
          • Partager sur Facebook
          • Partager sur Twitter

          Elle veus pas s'afficher !!!!!!!!!!!!!

          × 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