Affichage des Images en fonction des déplacements [Résolu]

-
Bonsoir , je vous explique mon soucis, je déplace mon image dans chaque direction . Seulement lorsque je ne déplace plus mon image, l'image initiale réapparaît alors que ce n'est pas ce que je souhaite. Les déplacements s'effectue parfaitement mais l'affichage non :/

 void RecupererVecteur(Input* in,int* vx,int* vy,SDL_Rect* perso,SDL_Surface* screen,int xscroll,int yscroll)
{
SDL_Surface *dresseur = NULL, *arene = NULL, *dresseurActuel = NULL;
SDL_Event event;
dresseur = SDL_LoadBMP("images/bmp/water.bmp");
arene = SDL_LoadBMP("images/bmp/grass.bmp");
dresseurActuel = arene;
SDL_Rect positionsurecran = *perso;
positionsurecran.x -= xscroll;
positionsurecran.y -= yscroll;
int continuer = 1;
int vitesse = 2;
*vx = *vy = 0;


if (in->key[SDLK_UP]){
*vy = -vitesse;
dresseurActuel = dresseur;
SDL_BlitSurface(dresseur, NULL, screen, &positionsurecran);

}
else if (in->key[SDLK_DOWN]){
*vy = vitesse;
dresseurActuel = arene;
SDL_BlitSurface(arene, NULL, screen, &positionsurecran);

}
else if (in->key[SDLK_LEFT]){
*vx = -vitesse;

}
else if (in->key[SDLK_RIGHT]){
*vx = vitesse;

}

SDL_BlitSurface(dresseurActuel, NULL, screen, &positionsurecran)

}


Merci de votre aide
Afficher la suite 

1 réponse

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
Salut,

Initialises ton "dresseurActuel" à null, puis teste si different de null
sur le dernier SDL_BlitSurface

dresseurActuel = NULL;

	if (in->key[SDLK_UP]){
            // ...
	}
	else if (in->key[SDLK_DOWN]){
            // ...
	}
	else if (in->key[SDLK_LEFT]){
            // ...
            dresseurActuel = arene;
	}
	else if (in->key[SDLK_RIGHT]){
            // ...
            dresseurActuel = arene;
	}
 
if(dresseurActuel != NULL)
	SDL_BlitSurface(dresseurActuel, NULL, screen, &positionsurecran)


Bye...
Commenter la réponse de yann_lo_san