2013-07-28 83 views
0

我的问题是我无法加载位图到快门后,编译窗口停止工作。我尝试了不同颜色深度的不同位图,但它仍然不起作用。无法加载位图,ALLEGRO C++ CODEBLOCKS

#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(); 

回答

0
  1. 使用set_color_depth(desktop_color_depth())

  2. 你是不是检查返回代码。如果create_bitmapload_bitmap失败,他们将返回NULL,您需要相应处理。

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

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