l SDL_BlitSurface(tileSheets.at(sheet),& clip [tile],screen,& tileBox);
工作得很好,我按照这样开始剪辑:
clip[ 0 ].x = x;
clip[ 0 ].y = y;
clip[ 0 ].w = 48;
clip[ 0 ].h = 48;
x += 48;
clip[ 1 ].x = x;
clip[ 1 ].y = y;
clip[ 1 ].w = 48;
clip[ 1 ].h = 48;
然而,这根本不起作用
SDL_BlitSurface(tileSheets.at(sheet), &clip.at(tile), screen, &tileBox);
我这样宣传他们:
for(int i = 0; i < number; i++)
{
SDL_Rect clipBox = {x,y,48,48};
clip.push_back(clipBox);
}
这是我得到的错误:http://imageshack.us/photo/my-images/836/83468944.png/
任何线索?
答案 0 :(得分:0)
不知道变量剪辑的类型,但可能是您正在将堆栈中的变量推送到向量,因此一旦退出for循环的范围,它们就会变为无效。
答案 1 :(得分:0)
尝试以下方法之一:
/* 1) */ SDL_Rect clipBox(x,y,48,48);
/* 2) */ clip.push_back(SDL_Rect(x,y,48,48));