无法在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!");
我已经尝试将字体文件放置在VisualStudio项目中几乎每个可行的目录中,以及.exe所在的目录中(正如其他几个线程所建议的那样)。我还尝试将它的一个副本放到C:驱动器上,并用完全限定的路径调用它:我尝试了无法在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这两种方法都不起作用。我还尝试将其添加到项目中的“资源文件”文件夹中,但也没有成功 对可能发生的事情有什么建议吗 谢谢。需要说的话都在这里: 我知道这是一个杨克斯的老问题,但我刚刚找到了它,并按照马修的建议阅读了文档(每个人都
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函数的内容: