无法在Allegro中加载字体 我在C++和Visual Studio 2012中玩AlelGro 5,但是由于某种原因,我无法从Alelgo wiki的示例代码中获得字体: ALLEGRO_FONT *font = al_load_ttf_font("pirulen.ttf",72,0 ); if (!font){ fprintf(stderr, "Could not load 'pirulen.ttf'.\n"); return false; } al_clear_to_color(al_map_rgb(50,10,70)); al_draw_text(font, al_map_rgb(255,255,255), 640/2, (480/4),ALLEGRO_ALIGN_CENTRE, "It worked!");

无法在Allegro中加载字体 我在C++和Visual Studio 2012中玩AlelGro 5,但是由于某种原因,我无法从Alelgo wiki的示例代码中获得字体: ALLEGRO_FONT *font = al_load_ttf_font("pirulen.ttf",72,0 ); if (!font){ fprintf(stderr, "Could not load 'pirulen.ttf'.\n"); return false; } al_clear_to_color(al_map_rgb(50,10,70)); al_draw_text(font, al_map_rgb(255,255,255), 640/2, (480/4),ALLEGRO_ALIGN_CENTRE, "It worked!");,c++,visual-studio,visual-studio-2012,allegro,allegro5,C++,Visual Studio,Visual Studio 2012,Allegro,Allegro5,我已经尝试将字体文件放置在VisualStudio项目中几乎每个可行的目录中,以及.exe所在的目录中(正如其他几个线程所建议的那样)。我还尝试将它的一个副本放到C:驱动器上,并用完全限定的路径调用它:我尝试了C:\\pirulen.ttf和C:/pirulen.ttf这两种方法都不起作用。我还尝试将其添加到项目中的“资源文件”文件夹中,但也没有成功 对可能发生的事情有什么建议吗 谢谢。需要说的话都在这里: 我知道这是一个杨克斯的老问题,但我刚刚找到了它,并按照马修的建议阅读了文档(每个人都

我已经尝试将字体文件放置在VisualStudio项目中几乎每个可行的目录中,以及.exe所在的目录中(正如其他几个线程所建议的那样)。我还尝试将它的一个副本放到C:驱动器上,并用完全限定的路径调用它:我尝试了
C:\\pirulen.ttf
C:/pirulen.ttf
这两种方法都不起作用。我还尝试将其添加到项目中的“资源文件”文件夹中,但也没有成功

对可能发生的事情有什么建议吗


谢谢。

需要说的话都在这里:


    • 我知道这是一个杨克斯的老问题,但我刚刚找到了它,并按照马修的建议阅读了文档(每个人都应该这样做),所以我想我会在这里为任何其他想要简单答案的人添加这个

      如果愿意,您可以为每个资源创建路径,但使用
      al_change_目录
      设置资源目录更容易,然后您可以在那里找到您的资产

      al_init_font_addon(); // initialize the font addon
      al_init_ttf_addon();// initialize the ttf (True Type Font) addon
      
      ALLEGRO_PATH *path = al_get_standard_path(ALLEGRO_RESOURCES_PATH);
      al_append_path_component(path, "resources");
      al_change_directory(al_path_cstr(path, '/'));
      al_destroy_path(path);
      
      然后,您可以引用相对于
      资源
      根的路径

      ALLEGRO_FONT* font = al_load_ttf_font("LibreCaslonText-Bold.ttf", 72, 0);
      
      // Check font is loaded
      if (!font) {
          fprintf(stderr, "failed to load font!\n");
          al_destroy_font(font);
          return -1;
      }
      
      要澄清
      librecasontext Bold.ttf
      存在于
      project\u dir/resources/librecasontext Bold.ttf

      旁注

      在我的例子中,我还需要将资源复制到构建目录。所以我把它添加到了我的
      CMakeLists.txt

      if (NOT ${PROJECT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
          file(COPY "${PROJECT_SOURCE_DIR}/resources" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
      endif()
      

      谢谢,成功了。它没有在字体教程页面上说明任何关于init函数的内容: