Importation image en SDL

cs_Richard94 Messages postés 2 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 3 septembre 2009 - 22 août 2009 à 21:02
lectpe Messages postés 162 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 17 juillet 2010 - 25 août 2009 à 15:37
Bonjour,
voila j'ai un petit probleme en SDL, j'essaye d'importer une image format "xcf" en faisant IMG_load sous codeblocks, mais ça ne marche pas. Pourtant la SDL_image est installé, ( la fonction marche avec d'autres types d'images) et, l'image se trouve bien dans le dossier de mon projet, mais je ne trouve pas l'erreur.
Merci beaucoup.

int main ( int argc, char** argv )
{
SDL_Init(SDL_INIT_VIDEO); // Démarrage de la SDL (ici : chargement du système vidéo)
SDL_Surface *ecran NULL, *pion NULL;


ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE);
SDL_WM_SetIcon(IMG_Load("pion.png"), NULL);
SDL_WM_SetCaption("déplacement pion en SDL", NULL);

pion = IMG_Load("pion.xcf");

SDL_BlitSurface(pion, NULL, ecran, NULL);
SDL_Flip(ecran);

SDL_Quit(); // Arrêt de la SDL (libération de la mémoire)


return 0;
}

2 réponses

cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
24 août 2009 à 10:00
Tu dois faire un SDL_Free(pion) ; à la fin de ton programme.
Et essaye en donnant une position quand tu blit l'image en passant en dernier paramètre un SDL_Rect.
0
lectpe Messages postés 162 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 17 juillet 2010 3
25 août 2009 à 15:37
Salut.

Ton problème vient du fait que tu n'indiques pas la position dans le blit de ton image :
en effet, tu as :
SDL_BlitSurface(pion, NULL, ecran, NULL);

Mais la position n'est pas présente, tu dois faire ça :
SDL_Surface position;
position.x = 100;
position.y = 100;
SDL_BlitSurface(pion, NULL, ecran, &position);

Et là, ça devrait marcher.

Cordialement, Grégory.
0
Rejoignez-nous