C++;快板 我的问题与Alelgo 5 C++有关。下面是我的代码的一些部分,它们必须在屏幕上绘制文本。我已经做了所有的声明,错误肯定在代码的这一部分

C++;快板 我的问题与Alelgo 5 C++有关。下面是我的代码的一些部分,它们必须在屏幕上绘制文本。我已经做了所有的声明,错误肯定在代码的这一部分,c++,allegro5,C++,Allegro5,所以首先我声明了一个全局变量ALLEGRO_FONT*FONT 我在mainal_init_font_addon()中调用了这个函数 这是另一个函数,它绘制文本 问题是,该应用程序在while循环的507步崩溃您在每个循环中初始化一个新字体,而不是在完成资源分配时取消资源分配 相反,在循环之前只调用一次al_init\u ttf\u addon和al_load\u font,并在循环中使用它。记住用完字体后释放它。实际上,我建议您在初始化程序时调用al_init_ttf_addon,换言之,在进

所以首先我声明了一个全局变量
ALLEGRO_FONT*FONT
我在main
al_init_font_addon()中调用了这个函数

这是另一个函数,它绘制文本


问题是,该应用程序在while循环的507步崩溃

您在每个循环中初始化一个新字体,而不是在完成资源分配时取消资源分配


相反,在循环之前只调用一次
al_init\u ttf\u addon
al_load\u font
,并在循环中使用它。记住用完字体后释放它。实际上,我建议您在初始化程序时调用
al_init_ttf_addon
,换言之,在进入事件循环之前调用
main
函数。

旁注:当Allegro提供跨平台例程时,确实不需要使用Windows特定的键盘函数。
    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;
        }
    }