Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL image

Impossible à utiliser !

    8 juin 2006 à 15:22:03

    Bonjour !

    J'ai un probleme avec SDL_image !

    En fait, la technique de Mateo n'a pas fonctionnée pour installer la SDL.
    Alors j'ai utilisé la méthode de developpez.com ( Ici )

    Le probleme, c'est que pour installer SDL_image, c'est différent, et je n'y arrive pas !

    Voil l'arborescence de mon IDE ( Dev C/C++ )

    Dans le dossier principal :

    -Tous les dossiers/fichiers
    -SDL-1.2.9

    Dans SDL-1.2.9 :

    -bin
    -include
    -lib
    -share
    -test
    -...

    Pour installer la librairie IMAGE, j'ai mit le Header dans include.
    Les DLL a coté de mon projet, et le fichier LIB dans LIB


    La technique de Mateo était différente, et elle ne marchait pas chez moi .

    -Placez les fichiers .a dans le dossier Dev-Cpp\mingw32\lib
    -Placez les headers (.h) dans le dossier Dev-Cpp\mingw32\include\SDL. Pensez à créer un sous-dossier "SDL" pour y mettre vos .h, c'est important.
    -Placez la SDL.dll dans le dossier de votre projet (à côté de l'exécutable).

    Moi j'avais un probleme avec mingw32 !
    Il n'y avait pas d'include ou de truc dedans, et ca foirait.

    Ensuite, j'ai ajouté la ligne de Code :

    #include "SDL.h"

    Avec la technique de Mateo, il aurait fallu ajouter :

    #include <SDL/SDL_image.h>

    Or #include <SDL/SDL_image.h> ne fonctionne pas chez moi !
    J'ai donc essayé de mettre #include "SDL_image.h" .

    Aucune erreur pendant la compilation, mais le programme s'ouvre et se ferme en une seconde !

    Pourquoi ?
    Merci de m'aider :'(



    Voila mon code entier si besoin ::


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



    /*
      Name: Mon jeu de role
      Copyright: 2006
      Author: Patou
      Date: 08/06/06 14:55
      Description: Zelda Style !
    */





    // --------------- Etape 1 ---------------
    // Les variables SDl
    // ---------------------------------------
       

    SDL_Surface *ecran = NULL, *zelda_haut = NULL, *zelda_bas = NULL, *zelda_gauche = NULL, *zelda_droite = NULL,
     *imageDeFond = NULL, *actuel = NULL ;

    SDL_Event event; /* La variable contenant l'évènement */
    SDL_Rect positionActuel;
    SDL_Rect positionFond;

    // --------------- Etape 1.5 ---------------
    // Les variables normal du programme
    // ---------------------------------------

    int continuer = 1 ;





    int main(int argc, char *argv[])
    {
    // --------------- Etape 2 ---------------
    // On initialise la SDL
    // ---------------------------------------

        SDL_Init(SDL_INIT_VIDEO);
        ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE);
        SDL_WM_SetCaption("Le jeu Zelda", NULL);
       

       
    // --------------- Etape 3 ---------------
    // On charge les images dont on a besoin
    // ---------------------------------------
     

        /* Les différentes positions */
        zelda_haut = SDL_LoadBMP("zelda_haut.gif");
         SDL_SetColorKey(zelda_haut, SDL_SRCCOLORKEY, SDL_MapRGB(zelda_haut->format, 255, 255, 255));
         
        zelda_bas = SDL_LoadBMP("zelda_bas.gif");
        SDL_SetColorKey(zelda_bas, SDL_SRCCOLORKEY, SDL_MapRGB(zelda_bas->format, 255, 255, 255));
       
        zelda_gauche = SDL_LoadBMP("zelda_gauche.gif");
        SDL_SetColorKey(zelda_gauche, SDL_SRCCOLORKEY, SDL_MapRGB(zelda_gauche->format, 255, 255, 255));
       
        zelda_droite = SDL_LoadBMP("zelda_droite.gif");
        SDL_SetColorKey(zelda_droite, SDL_SRCCOLORKEY, SDL_MapRGB(zelda_droite->format, 255, 255, 255));
       
        imageDeFond = SDL_LoadBMP("fond.bmp");
       

        actuel = zelda_bas ;


       
    // --------------- Etape 4 ---------------
    // On déclare toutes les positions
    // ---------------------------------------

        positionActuel.x = 400;
        positionActuel.y = 300;
       
        positionFond.x = 0;
        positionFond.y = 0;
       

    // --------------- Etape 5 ---------------
    // Gestion des evenements
    // ---------------------------------------

       
    SDL_EnableKeyRepeat(8 ,8); //Pour charger plus vite en appuyant sur la touche 

    while (continuer) /* TANT QUE la variable ne vaut pas 0 */
        {
            SDL_WaitEvent(&event); /* On attend un évènement qu'on récupère dans event */
            switch(event.type) /* On teste le type d'évènement */
            {
                case SDL_QUIT: /* Si c'est un évènement QUITTER */
                    continuer = 0; /* On met le booléen à 0, donc la boucle va s'arrêter */
                    break;
                   
                    case SDL_KEYDOWN:
            switch(event.key.keysym.sym)
            {
                case SDLK_UP: // Flèche haut--
                    positionActuel.y -= 4 ;
                    actuel = zelda_haut;
                    break;
                case SDLK_DOWN: // Flèche bas++
                    positionActuel.y += 4 ;
                    actuel = zelda_bas;
                    break;
                case SDLK_RIGHT: // Flèche droite++
                    positionActuel.x += 4 ;
                    actuel = zelda_gauche;
                    break;
                case SDLK_LEFT: // Flèche gauche--
                    positionActuel.x -= 4 ;
                    actuel = zelda_droite;
                    break;
                   
                 
            }
            break;
     

            }
           

           
     
            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); /* On efface l'écran */
            SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
            SDL_BlitSurface(actuel, NULL, ecran, &positionActuel);
            SDL_Flip(ecran); /* On met à jour l'affichage */
           

           

        }//While


    // --------------- Etape 6 ---------------------
    // On libere de l'espace
    // ---------------------------------------------


        SDL_FreeSurface(actuel);
        SDL_FreeSurface(imageDeFond);
        SDL_Quit();

        return EXIT_SUCCESS;


        }
       
    // --------------- Etape 7 ---------------------
    // Les fonctions du programme
    // ---------------------------------------------













    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2006 à 15:31:47

      L'installation de SDL_image est simple, tu mets les fichiers .h dans le sous-dossier "include/SDL/" de ton compilateur, et les fichiers .a dans le sous-dossier "lib" de ton compilateur. C'est tout !

      Ensuite, c'est bien <SDL/SDL.h> et non "SDL.h", il y a des standards, respectez-les.
      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2006 à 15:32:42

        Citation : Patou

        Aucune erreur pendant la compilation, mais le programme s'ouvre et se ferme en une seconde !

        Pourquoi ?



        C'est ca le véritable probleme je crois :(
        • Partager sur Facebook
        • Partager sur Twitter

        SDL image

        × 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