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 :
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
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);
voila, j'attends vos commentaires..car il y a surement mieux
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);
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
Partager