我正在写一个简单的游戏。我有一个虫子,我无法弄清楚是什么原因。 在代码中我写这个:
DxFrame[0] = ImageLoader("Rome/Ball_Dx/RomeDx1.png");
DxFrame[1] = ImageLoader("Rome/Ball_Dx/RomeDx2.png");
DxFrame[2] = ImageLoader("Rome/Ball_Dx/RomeDx3.png");
DxFrame[3] = ImageLoader("Rome/Ball_Dx/RomeDx4.png");
DxFrame[4] = ImageLoader("Rome/Ball_Dx/RomeDx5.png");
SxFrame[0] = ImageLoader("Rome/Ball_Sx/RomeSx1.png");
SxFrame[1] = ImageLoader("Rome/Ball_Sx/RomeSx2.png");
SxFrame[2] = ImageLoader("Rome/Ball_Sx/RomeSx3.png");
SxFrame[3] = ImageLoader("Rome/Ball_Sx/RomeSx4.png");
SxFrame[4] = ImageLoader("Rome/Ball_Sx/RomeSx5.png");
但是当我在监视器中编译时,DxFrame [4]不应该是什么。事实上他成了SxFrame [0]。我不明白为什么会这样。
编辑 这是图像加载器:
SDL_Surface* ImageLoader(string Image) {
SDL_Surface* LoadedImage = NULL;
SDL_Surface* OptimizedImage = NULL;
LoadedImage = IMG_Load(Image.c_str());
OptimizedImage = SDL_DisplayFormat(LoadedImage);
SDL_FreeSurface(LoadedImage);
return OptimizedImage;
}
我认为没有相关的代码。
答案 0 :(得分:1)
你的阵列可以容纳4张图像,但你正在写入5张图像,这些图像会覆盖它后面的任何图像。