我在Visual Studio 2015中使用SFML制作一个需要我打印文本的游戏。我尝试加载字体并不断收到“无法创建字体”的错误。我已经尝试加载几种不同的字体,但它们都不起作用,它们位于正确的目录中,这是我的项目所在的文件夹。
这就是它的全部内容,它不起作用:
sf::Font font;
if (!font.loadFromFile("arial.ttf"))
return EXIT_FAILURE;
arial的ttf文件与项目本身位于同一文件夹中,这似乎解决了我在网上找到的具有相同问题的其他人的问题。知道为什么字体仍然无法加载?
答案 0 :(得分:2)
简单的答案是,当您运行可执行文件时,当前工作目录中的文件不。
尝试输入完全限定的文件名。它会工作。
使用Visual Studio,很可能这是您的.vcxproj
文件所在的目录。
如果这不起作用,您可以通过查看this帖子找出当前工作目录的内容,了解如何查找当前目录。
作为一个快速黑客,您可以在程序启动时创建一个文件。启动一次并检查文件的创建位置。这是当前目录。
答案 1 :(得分:1)
我对此进行了修正:
sf::Font font;
if (!font.loadFromFile("../arial.ttf")){
return EXIT_FAILURE;
}
我也在使用SMFL的Ubuntu上使用CLion。
答案 2 :(得分:0)
要补充一点,当我以为我可以正确键入所有内容时,我也遇到了同样的错误。最终成为问题的是我为字体文件编写了.tff而不是.ttf,该字体经纠正后可以解决问题。