Affichage des Images en fonction des déplacements

Résolu
DIROP - Modifié par DIROP le 26/12/2014 à 02:29
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 30 déc. 2014 à 15:19
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

1 réponse

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
30 déc. 2014 à 15:19
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...
0
Rejoignez-nous