我正处于游戏开始阶段,我陷入了Blit_Surface
步骤。我的CodeBlocks编译器在编译时说->
(有BrickStruct
)“的无效类型参数。看起来它想要一个指向我的2D数组的指针,但我记得2D数组是指向第一个数组的第一个成员,其中每个成员是指向第二个数组的第一个成员的指针?在这种情况下,它看起来不需要参数中的指针,不是吗?我找不到哪里类型问题是。
void Display(BrickStruct Bricks[12][10],SDL_Surface *ecran)
{
int i=0,j=0;
for(j=0;j<10;j++)
{
if( (j+1)%2==0 ) // If we are on even lines, display only 11 bricks
{
for(i=0;i<11;i++)
{
Bricks[i][j].Brick_Surface = IMG_Load("BrickTest1.png");
SDL_BlitSurface(Bricks[i][j].Brick_Surface, NULL, ecran, Bricks[i][j]->Brick_Coordinates);
}
}
else // If we are on odd lines, display the 12 bricks
{
for(i=0;i<12;i++)
{
}
}
}
}
我的结构看起来像这样:
typedef struct BrickStruct
{
int type;
SDL_Rect Brick_Coordinates;
SDL_Surface *Brick_Surface;
}BrickStruct;
在我的主要内容中,我的代码是这样的:
SDL_Surface *ecran = NULL;
BrickStruct Bricks[12][10]; // I create my 2D array of struct named Bricks
Display(Bricks,&ecran);
请有人能够表示我的问题在哪里? 提前致谢
答案 0 :(得分:2)
编译器当然是对的。
SDL_BlitSurface(Bricks[i][j].Brick_Surface, NULL, ecran, &Bricks[i][j].Brick_Coordinates);
但每次抽奖重新加载图像120次?真?更糟糕的是,不要摧毁它。