l SDL_BlitSurface(tileSheets.at(sheet),& clip [tile],screen,& tileBox);在SDL_blitsurface中使用SDL_Rect向量時,出現C++運行時錯誤
工作得很好,我initiliaze剪輯這樣的:
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/
任何線索?
好像你正在過多索引陣列('在()'拋出excaption當索引超出範圍,'[]'上相同的索引是未定義的行爲) - 當你調用集合上的'push_back()'時,確保你的'tile'在0和'number-1'(包含範圍)內 – Attila