表面没有blitting到屏幕SDL

时间:2014-05-15 15:25:05

标签: class sdl surface blit

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

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

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

0 个答案:

没有答案