0

我有一个问题,当我构建我的代码时它工作正常,但是当我运行它时,我得到一个访问冲突错误,并且我在这里跟踪它的这一点代码:

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
}

但是我不知道如何解决这个问题或它为什么停止。任何帮助将非常感激!

编辑:我找到了为什么我有内存违规。如果我将图片加载移动到相同的功能中,它可以工作。

但是,现在我遇到的问题是,当我运行我的代码时,什么都没有发生,没有任何东西被 Blitted 到屏幕上。

编辑 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);
}

就像我说的,一切都在构建,但屏幕上没有显示任何内容。

4

0 回答 0