【问题标题】:C++ Allegro al_draw_textf ()C++ 快板 al_draw_textf ()
【发布时间】:2013-06-11 17:31:42
【问题描述】:

我的问题与 Allegro 5 C++ 有关。这是我的代码的某些部分,它们必须在屏幕上绘制文本。我已经完成了所有的声明,错误肯定在这部分代码中。

所以一开始我声明了一个全局变量ALLEGRO_FONT * font; 我在mainal_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步崩溃

【问题讨论】:

  • 旁注:当 Allegro 提供跨平台例程时,确实不需要使用 Windows 特定的键盘功能。

标签: c++ allegro5


【解决方案1】:

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

而是在循环之前只调用一次al_init_ttf_addonal_load_font,然后在循环中使用它。完成后请记住释放字体。我实际上建议您在初始化程序时调用al_init_ttf_addon,换句话说,在您进入事件循环之前调用main 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多