[英]C++ Allegro al_draw_textf ()
我的問題與Allegro 5 C ++有關。 這是我的代碼的某些部分,必須在屏幕上繪制文本。 我已經完成了所有聲明,並且錯誤肯定在代碼的這一部分。
因此,首先我聲明了一個全局變量ALLEGRO_FONT * font;
我在主要的al_init_font_addon();
調用了此函數al_init_font_addon();
這是另一個繪制文本的函數。
void draw (){ int score=0 ; while (!GetAsyncKeyState(VK_ESCAPE)){ al_clear_to_color(al_map_rgb( 0 , 0 , 0)); al_init_ttf_addon(); font = al_load_font ("font.ttf" , 24 , NULL); al_draw_textf(font , al_map_rgb(255 , 0 , 255) , 200 , 200 , ALLEGRO_ALIGN_CENTRE , "SCORE: %d" , score ); al_flip_display(); score +=10; } }
問題是此應用在while循環的507步驟崩潰
您將在每個循環中初始化一個新字體,而在使用完該字體后不會取消分配資源。
而是在循環之前僅調用al_init_ttf_addon
和al_load_font
,然后在循環中使用它。 完成操作后,請記住要釋放字體。 我實際上建議您在初始化程序時調用al_init_ttf_addon
,換句話說,在進入事件循環之前在main
函數中調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.