Bonjour à tous, j'ai un gros problème que je ne comprend vraiment pas...
Le but est d'utiliser l'image ci dessous pour faire un mapping :
Je voudrais ensuite les mettre dans les 28cases d'un tableau de Surface pour pouvoir ensuite les utiliser lors du mapping...
Le problème se trouve dans la ligne suivante :
SDL_BlitSurface(chipsetMap, &RectFrame, frameMap[i], &RectChipset);
Voici le code complet :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #define TAILLE_TABLEAU 256
#define TAILLE_FRAME 25
#define NB_FRAME 28
SDL_Surface* remplissageMap(char tableauMap[][TAILLE_TABLEAU], int tailleX, int tailleY, SDL_Surface * &screen)
{
SDL_Surface * chipsetMap = SDL_LoadBMP("data/picture/map/skin12.bmp");
SDL_Surface * frameMap[NB_FRAME] = {NULL};
SDL_Rect RectChipset;
RectChipset.x = 0;
RectChipset.y = 0;
SDL_Rect RectFrame;
RectFrame.y=0;
RectFrame.w=25;
RectFrame.h=25;
for(int i=0; i<NB_FRAME; i++)
{
RectFrame.x=i*TAILLE_FRAME;
SDL_BlitSurface(chipsetMap, &RectFrame, frameMap[i], &RectChipset);
if(frameMap[i] == NULL)
exit(0);
}
} |
Le problème est que frameMap[] est toujours égal à NULL...
J'ai pourtant essayer quelque chose comme ça pour faire des tests :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #define TAILLE_TABLEAU 256
#define TAILLE_FRAME 25
#define NB_FRAME 28
SDL_Surface* remplissageMap(char tableauMap[][TAILLE_TABLEAU], int tailleX, int tailleY, SDL_Surface * &screen)
{
SDL_Surface * chipsetMap = SDL_LoadBMP("data/picture/map/skin12.bmp");
SDL_Surface * frameMap[NB_FRAME] = {NULL};
SDL_Rect RectChipset;
RectChipset.x = 0;
RectChipset.y = 0;
SDL_Rect RectFrame;
RectFrame.y=0;
RectFrame.w=25;
RectFrame.h=25;
for(int i=0; i<NB_FRAME; i++)
{
RectFrame.x=i*TAILLE_FRAME;
RectChipset.x = i*TAILLE_FRAME;
RectChipset.y = i*TAILLE_FRAME;
SDL_BlitSurface(chipsetMap, &RectFrame, screen, &RectChipset);
}
SDL_Flip(screen);
} |
Et la je me retrouve bien avec une cascade de petite image comme prévu...
Voilà, je pense que vous savez tous, merci à tous de bien vouloir m'aider
Partager