Salut,

Je me pose des questions sur l'élaboration d'un scrolling dans un jeu style RPG.
J'ai pensé à une solution, je la soumets à vos avis :

Declarer 2 buffers :
un de la taille de l'ecran : SDL_Surface *screen
un beaucoup plus grand de la taille de la map entiere : SDL_Surface *map
On blit toutes les tiles dans map.
Puis on blit le centre de map dans screen, quelque chose dans le genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SDL_Surface *screen = SDL_setVideo....;
SDL_Surface map = SDL_CreateRGBSurface....;
SDL_Rect scr;
SDL_Rect dest;
/* on suppose que map contient toutes les tiles */
/* on positionne screen au centre de map*/
src.x = map->w/2;
src.y = map->h/2;
src.w = screen->w;
src.h = screen->h;
SDL_BlitSurface(map,&src,screen,NULL);
SDL_Flip(screen);
Ainsi quand le perso se deplace, il suffit de modifié src.x et src.y et de refaire le blit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
/* Par exemple le scrolling va vers le haut avec une vitesse SPEED */
src.x = map->w/2;
src.y = map->h/2 - SPEED;
src.w = screen->w;
src.h = screen->h;
SDL_BlitSurface(map,&src,screen,NULL);
SDL_Flip(screen);
voila, j'attends vos commentaires..car il y a surement mieux
Je n'ai pas testé cette solution, c'etait juste une approche sur papier (enfin surtout dans ma tete).
Merci pour vos réponses

Sorry