我正在使用一个函数生成一个关卡,所以我正在发送一个指向我的屏幕指针的指针来更新他。但是当我尝试使用 SDL_MapRGB 时,我得到了一个错误*screen->format
。有没有办法做到这一点 ?这是我正在使用的代码:
void generateLevel(SDL_Surface** screen)
{
int i=0, j=0;
char object =' ';
FILE* level = NULL;
SDL_Surface* lvl[LARGEUR_MAP][HAUTEUR_MAP];
SDL_Rect posElem;
//Ouverture du fichier contenant les infos du niveau
level = fopen("lvl.txt","r");
if(level == NULL)
{
fprintf(stderr,"Erreur lors de l'ouverture du fichier");
exit(EXIT_FAILURE);
}
//Boucle pour lire le fichier et placer les éléments du décor
for(j=0;j<HAUTEUR_MAP;j++)
{
for(i=0;i<LARGEUR_MAP;i++)
{
object = fgetc(level);
if(object == '\n')
object = fgetc(level);
switch(object)
{
case 'm':
lvl[i][j] = IMG_Load("images\\mur.jpg");
posElem.x = i*TAILLE_BLOC;
posElem.y = j*TAILLE_BLOC;
SDL_BlitSurface(lvl[i][j], NULL, *screen, &posElem);
break;
}
}
}
SDL_FillRect(*screen, NULL, SDL_MapRGB(*screen->format,255,255,255));
SDL_Flip(*screen);
fclose(level);
}
错误出现在代码的末尾,在 SDL_FillRect(); 一切正常,但是这个,我不知道该怎么做。尝试使用 *screen->format、**screen->format、screen->format 甚至 &screen->format(我多么绝望 ^^)。
编辑:错误
错误:在'* screen'中请求成员'format',它是指针类型'SDL_Surface*'(也许你打算使用'->'?)“`