来自Allegro的load_bitmap之后的神秘崩溃

时间:2014-01-19 15:39:00

标签: c bitmap allegro

我是Allegro的新手。我们必须在我们的研究中使用它。 我的代码有问题,应该加载位图并打印它。

#include <allegro.h>
int main( void )
{
    allegro_init();
    install_keyboard();
    set_color_depth(16);
    set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);

    BITMAP *Bild;
    if( (Bild=load_bitmap("Spielfeld_Rand.bmp", NULL) ) == NULL )
    {
        allegro_message( "Error" );
        return 1;
    }
    while( !key[KEY_ESC])
    {
        draw_sprite(screen, Bild, 0,0);
    }
    destroy_bitmap(Bild);

    return 0;
}
END_OF_MAIN()

守则崩溃。我没有看到任何错误消息,我的屏幕变黑,我什么也做不了。我也尝试进入图片的完整路径,但它没有帮助。

但是如果我删除了load_bitmap,那么程序就会中止并返回到场景。

任何人都可以帮我解决这个神秘的崩溃吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

set_gfx_mode会将您的屏幕分辨率更改为640x480并显示黑屏。

手册说不要在图形模式下使用allegro_message。它可能被调用并锁定程序。

在文本模式下,allegro_message会在其中放置一个带“Error”的对话框。然后程序将不会退出,直到选择了ok。

您还应该在退出前调用allegro_exit,否则您的屏幕将以640x480的分辨率保留。