SDL_Rect bougerSuivantUnVecteur (SDL_Surface *source, SDL_Surface *ombre,
SDL_Surface *dest, SDL_Rect *objet, short int
deplaceHaut,short int deplaceHorizon)
{
/* On fait bouget l’objet selon un vecteur ( deplaceHorizon,deplaceHaut)*/
new_place.x = (objet->x)+deplaceHorizon;
new_place.y = (objet->y)+deplaceHaut ;
new_place.w = source->w;
new_place.h = source->h;
SDL_BlitSurface (ombre, NULL, dest, objet);
SDL_BlitSurface (dest, &new_place ,ombre,NULL ); //ombre retrouve son
dessous !
SDL_BlitSurface (source, NULL, dest, &new_place);
SDL_UpdateRects (dest, 1,objet);
SDL_UpdateRects(dest, 1, &new_place);
return(new_place);
}
// source est ton image que tu veux afficher
//ombre est le dessous que tu sauvegarde, ? l’initialisation g?n?rale fait
bien attention d’initialiser cette surface,
//prends exemple sur la fonction (un simple Blit surface ? partir de
ton SDL_Surface screen.
//? chaque d?placement de ( deplaceHorizon,deplaceHaut), ombre est replac?
? l’ancienne place de ton image,
// puis r?cup?re le fond o? tu vas mettre ta nouvelle image, puis l’image
est plac? ? cette exacte place.
Appel de ta fonction :
*ancienNewPlace= bougerSuivantUnVecteur
(imageQueTuVeuxAfficher,ombreQuiSauvegarde,
screen,
ancienNewPlace,deplaceHaut, deplaceHorizon);
Comme tu le vois tu donne le ancienNewPlace, et tu en r?cup?re un nouveau,
que tu devra donner ? l’affichage suivant.
Rappel des d?clarations:
SDL_Rect * ancienNewPlace;
SDL_Surface *imageQueTuVeuxAfficher ,*ombreQuiSauvegarde,*screen;
short int deplaceHaut, deplaceHorizon;
Toutes ces variables doivent ?tre initialis?es, et avoir donn?es
utilisables.
Bon amusement.
bille2.
“DELRUE C?dric” <cedric.delrue at gedas-france.com> a ?crit dans le message
news: a38jfs$6m3$1 at ftp.lokigames.com…> Bonjour,
Je d?bute avec SDL et je n’arrive pas ? animer une image :
- je voudrais r?cup?rer le fond avant affichage, afficher l'image et
restaurer le fond comment faire ???
S’il y a un mec sympa qui pourrais me filer un petit coup de main,
j’avancerais un peux plus vite !!! ;o)
Merci d’avance
c?dric
delrue at free.fr