0

我的问题是编译 windows 停止工作后我无法将位图加载到 allegro。我尝试了不同颜色深度的不同位图,但它仍然不起作用。

#include <allegro.h>

int main(int argc, char *argv[])
{
  allegro_init();
  install_keyboard();

  set_color_depth(16);
  set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0,0);
  set_window_title("The Game");

  BITMAP *bmp = create_bitmap(800,600);
  clear_bitmap(bmp);
  BITMAP *BG = load_bitmap("tlotlo.bmp",NULL);

  while(!key[KEY_ESC])
  {
  blit(bmp, screen, 0,0,0,0, bmp->w, bmp->h);
  blit(BG, bmp, 0,0,0,0, BG->w, BG->h);
  }

  destroy_bitmap(bmp);
  destroy_bitmap(BG);


  return 0;


}
END_OF_MAIN();
4

1 回答 1

0
  1. 利用set_color_depth(desktop_color_depth())

  2. 您没有检查返回码。如果失败,它们将返回create_bitmap,您需要相应地处理。load_bitmapNULL

  3. 如果您不在正确的目录中,加载位图将失败。您可以通过使用位图的完整路径来测试它。如果完整路径解决了问题,那么您应该重新配置 IDE 以使其正常工作。

  4. Allegro 可能不支持 BMP 文件。Allegro 4 的 BMP 加载代码无法加载更多“现代”版本的格式。如果您刚刚开始,您应该真正使用 Allegro 5。

于 2013-07-29T14:16:54.293 回答