[Xcode]Aide integrer image

mirmoleboss Messages postés 303 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 29 juillet 2011 - 9 avril 2010 à 14:40
mirmoleboss Messages postés 303 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 29 juillet 2011 - 10 avril 2010 à 19:44
Bonjour,
Voilà j'ai fait ce petit code mais il ne marche pas enfin il marchait mais l'intégration d'une image ne marche pas, je ne vois pas d'où vient le problème si quelqu'un pouvait m'aider
Merci D'avance
/* Simple program:  Create a blank window, wait for keypress, quit.

   Please see the SDL documentation for details on using the SDL API:
   /Developer/Documentation/SDL/docs.html
*/
   
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#include "SDL.h"

int main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO;  /* See documentation for details */
SDL_Surface *screen NULL, *rectangle NULL, *rectangle2=NULL, *imageDeFond = NULL; /* Déclaration des surfaces utilisés*/
Uint8  video_bpp = 0;
Uint32 videoflags = SDL_SWSURFACE | SDL_DOUBLEBUF;
SDL_Rect position, position2, positionFond; /*Variable Position*/

int    done;
        SDL_Event event;

/* Initialize the SDL library */
if ( SDL_Init(initflags) < 0 ) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
exit(1);
}


SDL_WM_SetCaption("TEST 10", NULL); /*Nom de notre Fenêtre*/

/* Set 1080x720 video mode */
screen=SDL_SetVideoMode(1080,720, video_bpp, videoflags);


position.x = 0; // Les coordonnées de la surface seront (0, 0)
position.y = 0;

position2.x = 860;
    position2.y = 540;
    
    positionFond.x = 300;
    positionFond.y = 300;

/* Chargement d'une image Bitmap dans une surface */
    imageDeFond = SDL_LoadBMP("zozor.bmp");

    /* On blitte par-dessus l'écran */
rectangle2 = SDL_CreateRGBSurface(SDL_HWSURFACE, 220, 180, 32, 0, 0, 0, 0); // Allocation de la surface
rectangle = SDL_CreateRGBSurface(SDL_HWSURFACE, 220, 180, 32, 0, 0, 0, 0); // Allocation de la surface

SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 100, 206, 112)); /*Couleur du bckgd*/
SDL_FillRect(rectangle2, NULL, SDL_MapRGB(screen->format, 255, 255, 255)); // Remplissage de la surface avec du blanc
SDL_FillRect(rectangle, NULL, SDL_MapRGB(screen->format, 255, 255, 255)); // Remplissage de la surface avec du blanc

SDL_BlitSurface(rectangle, NULL, screen, &position); // Collage de la surface sur l'écran
SDL_BlitSurface(rectangle2, NULL, screen, &position2); // Collage de la surface sur l'écran
SDL_BlitSurface(imageDeFond, NULL, screen, &positionFond);

SDL_Flip(screen); /* Mise à jour de l'écran */


        if (screen == NULL) {
fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n",
                        video_bpp, SDL_GetError());
SDL_Quit();
exit(2);
}

done = 0;
while ( !done ) {

/* Check for events */
while ( SDL_PollEvent(&event) ) {
switch (event.type) {

case SDL_MOUSEMOTION:
break;
case SDL_MOUSEBUTTONDOWN:
break;
case SDL_KEYDOWN:
/* Any keypress quits the app... */
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
}a

/*Libére la surfance afin de fermer le prog*/

SDL_FreeSurface(rectangle);
SDL_FreeSurface(rectangle2);
SDL_FreeSurface(imageDeFond);
/* Clean up the SDL library */
SDL_Quit();
return(0);
}

2 réponses

pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
9 avril 2010 à 19:37
Es-tu sûre que ton image est une bitmap, car si ce n'est pas le cas il faut utiliser :

imageDeFond = IMG_Load("zozor.jpg", NULL) et inclure <SDL_image.h>

sinon vérifie l'ordre dans lequel tu blittes les images et vérifie que les image sont bien dans le meme dossier que l'exécutable.

Si tu executes ton programme depuis le compilateur, tu ne verras pas forcément le bon résultat. Lance l'exécutable dans le dossier debug (ou release) pour être sure que ça ne fonctionne pas.


Pop70
0
mirmoleboss Messages postés 303 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 29 juillet 2011
10 avril 2010 à 19:44
Merci j'ai trouvé d'où venait le problème, il faut mettre les images dans le répertoire de debug et non à la racine du prog.
0
Rejoignez-nous