我有一个问题,当我构建我的代码时,它工作正常,但是当我运行它时,我得到一个访问冲突错误,并且我在这里跟踪它的这一小段代码:
void thePlayer::show_player()
{
SDL_BlitSurface(Player, NULL, ScreenSurface, &posPlayer);
SDL_SetColorKey(Player, SDL_TRUE, SDL_MapRGB(Player->format, 255, 255, 255)); //this line causes the problem
}
但是我不知道如何解决这个问题或者为什么要停止。任何帮助将不胜感激!
编辑: 我发现了为什么我的内存违规。如果我将图片加载到同一个函数中,它就会起作用。
然而,现在我遇到的问题是,当我运行我的代码时,没有任何反应,屏幕上没有任何内容。
编辑show_player代码:
void thePlayer::show_player()
{
Player = SDL_LoadBMP("spaceship.bmp");
if (Player == NULL)
{
cout<<"Error in loading player."<<SDL_GetError()<<endl;
}
SDL_BlitSurface(Player, NULL, ScreenSurface, &posPlayer);
SDL_SetColorKey(Player, SDL_TRUE, SDL_MapRGB(Player->format, 255, 255, 255));
SDL_UpdateWindowSurface(Window);
}
就像我说的那样,一切都在构建,但屏幕上没有显示任何内容。