我想在SDL中的一个帧中显示一个图像(.png)。但是,不知何故只有框架出现而图像没有被加载。我正在从XML文件中读取图像细节。这是示例代码我我在尝试:
班级myclass {
mysurface2(io.loadAndSet(myftndata-> getXmlStr(“backfile”),true)),
myfframe(新fframe(img2, myftn-> getXmlInt( “backWidth”), myftn-> getXmlInt(“backHeight”),0,0)),
myobjects()
{
if (SDL_Init(SDL_INIT_VIDEO) != 0)
{
throw string("SDL Error!!!: ");
}
atexit(SDL_Quit);
}
};
void myclass::drawImg() const {
SDL_FillRect( screen, NULL, SDL_MapRGB(screen->format, 255, 255, 255) );
SDL_Rect dest = {0, 0, 0, 0};
SDL_BlitSurface( screen, NULL, screen, &dest );
}
void myclass::move()
{
while ( not done )
{
drawImg();
SDL_Flip(screen);
}
}
请注意:我有一个完整的框架,我不能在这里给出。上面是我正在尝试的代码。
答案 0 :(得分:1)
您正在屏幕上显示屏幕,这是一个零操作。您应该将blit函数中的第一个屏幕更改为代表图像的SDL_Surface *。 您是否正在使用库(例如SDL_Image)来加载.png文件?因为SDL只能加载.bmp文件。