在我的代码中,我有一个位图结构。
struct bat
{
float x;
float y;
ALLEGRO_BITMAP *bmp;
};
有一些函数可以处理加载位图并将其绘制到屏幕上。
ALLEGRO_DISPLAY *display;
bool init_display(void)
{
puts("-- initializing display. --");
display = al_create_display(display_width, display_height);
if(display)
{
al_clear_to_color(al_map_rgb(0,0,0));
queue = al_create_event_queue();
al_register_event_source(queue, al_get_display_event_source(display));
if(init_objects()){return true; puts("-- display initialized. --");}
else return false;
}
else return false;
}
bool create_bat(struct bat *bat, float x_coord, float y_coord, const char *path)
{
puts("-- creating bat. --");
bat->x = x_coord;
bat->y = y_coord;
bat->bmp = al_load_bitmap(path);
if(bat->bmp){puts("-- bat created. --"); return true;}
else return false;
}
struct bat bat;
bool init_objects(void)
{
puts("-- initializing objects. --");
if(al_init_image_addon())
{
al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP);
al_set_target_backbuffer(display);
if(!create_bat(&bat, 0, 0, "img.jpg"))
{ puts("-- creating bat failed. --"); return false;}
puts("-- objects initialized. --");
return true;
}
else return false;
}
当我使用绝对路径加载位图或使用相对路径时,我总是得到这个输出。
-- initializing display. --
-- initializing objects. --
-- creating bat. --
-- creating bat failed. --
我究竟做错了什么?谢谢。(操作系统:Ubuntu 10.10)