2012-08-30 53 views
0

我最近開始使用Allegro 5,並嘗試加載字體。這是我的代碼:加載字體時Allegro 5崩潰

#include <allegro5/allegro.h> 
#include <allegro5/allegro_font.h> 
#include <allegro5/allegro_ttf.h> 
#include <allegro5/allegro_native_dialog.h> 

int main() 
{ 
    al_init_font_addon(); 
    al_init_ttf_addon(); 
    ALLEGRO_DISPLAY *display = NULL; 
    if(!al_init()) 
    { 
     al_show_native_message_box(NULL, NULL, NULL, "Error", NULL, NULL); 
     return -1; 
    } 
    display = al_create_display(800, 800); 
    ALLEGRO_FONT *font1 = al_load_font("arial.ttf", 12, 0); 

    if(!font1) 
    { 
     al_show_native_message_box(NULL, NULL, NULL, "Error 3", NULL, NULL); 
     return -3; 
    } 
    al_clear_to_color(al_map_rgb(0, 0, 0)); 
    al_draw_text(font1, al_map_rgb(255, 0, 255), 50, 50, ALLEGRO_ALIGN_CENTRE, "Hello font size: 12"); 
    al_flip_display(); 

    al_rest(3.0); 
    al_destroy_font(font1); 
    al_destroy_display(display); 
    return 0; 
} 

但是,在運行代碼時它返回-3,這意味着加載字體時出錯。我究竟做錯了什麼?我在Windows XP SP 3 mingw編譯器中使用Codeblocks IDE。我究竟做錯了什麼?

編輯: 我通過添加ttf文件到我的項目目錄來解決它。投票關閉

回答

1

你有兩個問題,一個是你已經發現的。另一個是你在調用al_init()之前初始化加載項。

您應該閱讀this troubleshooting guide以瞭解如何以跨平臺的方式正確加載相對位置的資源。

+0

感謝您指出這一點,我認爲這沒有什麼區別 – Bugster