我是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
,那么程序就会中止并返回到场景。
任何人都可以帮我解决这个神秘的崩溃吗?
非常感谢。
答案 0 :(得分:1)
set_gfx_mode会将您的屏幕分辨率更改为640x480并显示黑屏。
手册说不要在图形模式下使用allegro_message。它可能被调用并锁定程序。
在文本模式下,allegro_message会在其中放置一个带“Error”的对话框。然后程序将不会退出,直到选择了ok。
您还应该在退出前调用allegro_exit,否则您的屏幕将以640x480的分辨率保留。