0

我想在 SDL 的框架中显示图像(.png)。但是,不知何故,只有框架出现并且图像没有被加载。我正在从 XML 文件中读取图像详细信息。这是我正在尝试的示例代码:

我的班级{

mysurface2(io.loadAndSet(myftndata->getXmlStr("backfile"), true)),

myfframe(新 fframe(img2, myftn->getXmlInt("backWidth"), myftn->getXmlInt("backHeight"), 0, 0)),

我的对象()

{

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

请注意:我有一个完整的框架,我不能在这里给出。上面是我正在尝试的代码。

4

1 回答 1

1

您正在将屏幕传送到屏幕,这是一个零操作。您应该将 blit 函数中的第一个屏幕更改为代表您的图像的 SDL_Surface*。您是否使用库(例如 SDL_Image)来加载 .png 文件?因为 SDL 只能加载 .bmp 文件。

于 2012-09-30T13:15:22.393 回答