SDL - Blitting SDL_Rect数组

时间:2016-07-23 03:29:45

标签: c arrays sdl-2

无法在SDL2中对图像进行blitting。我使用 malloc 构建了一个 SDL_Rect 数组,并将每个成员归结为通常的x,y,w(宽度)和h(高度)变量,但图像只是赢了& #39; t出现。奇怪的是,当我通过直接引用元素的索引来尝试在 for 循环之外进行blitting时,它似乎有效。知道发生了什么吗?

//Not Working
int number =5;
for(int i = 0; i < number; i++){
          SDL_BlitScaled(myImage, NULL, mySurface, &(myElements[i]));
 }

//Works Perfectly
SDL_BlitScaled(myImage, NULL, mySurface, &(myElements[0]));

修改:结束忘记此部分。以下是如何生成数组:

SDL_Rect *myElements;

myElements = (SDL_Rect * ) malloc (number * sizeof(SDL_Rect));
generateGroup(myElements, number, 10, 10, 180, 30);

我在那里打电话的功能如下:

void generateGroup(SDL_Rect* elementArray, int numberElements, int posX, int posY, int width, int height) {

int i;

for(i = 0; i < numberElements; i++) {
    elementArray[i].x = posX;
    posX =  posX + width + 1;
    elementArray[i].y = posY;
    elementArray[i].w = width;
    elementArray[i].h = height;
 }
}

为了更准确地描述问题,只有当我在 for 循环之外进行blit时才会出现图像。至于索引,除了0之外,我还尝试过1和2,两者都有效。

0 个答案:

没有答案