首页 > 解决方案 > SFML - 未能创建字体

问题描述

我正在 WSL 环境中开发一个 C++ 项目。该项目包括 SFML 库。我必须使用 XLaunch 打开 SFML 窗口。我正在尝试通过从 .ttf 文件加载字体来呈现文本。我明白了

Failed to load font "Graphics/fonts/fff-forward-regular.ttf" (failed to create the font face)

这是我的代码:

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/OpenGL.hpp>


int main() {
    sf::RenderWindow window(sf::VideoMode(1600, 900), "Dungeon Crawler", sf::Style::Close);

    sf::RectangleShape quit_button(sf::Vector2f(300, 100));
    quit_button.setOrigin(150, 50);
    quit_button.setPosition(800, 600);
    quit_button.setFillColor(sf::Color::Magenta);
    
    sf::RectangleShape start_button(sf::Vector2f(360, 120));
    start_button.setOrigin(180, 60);
    start_button.setPosition(800, 300);
    start_button.setFillColor(sf::Color::Cyan);

    sf::Font pixel_font;
    pixel_font.loadFromFile("Graphics/fonts/fff-forward-regular.ttf");

    sf::Text quit_text("Quit", pixel_font, 30);
    quit_text.setOrigin(quit_text.getLocalBounds().width/2, quit_text.getLocalBounds().height/2);
    quit_text.setPosition(quit_button.getPosition());

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(quit_button);
        window.draw(start_button);
        window.draw(quit_text);
        window.display();
    }

    return 0;

}

SFML 窗口打开,其他一切似乎都可以正常工作,但渲染字体不起作用。我检查了 .ttf 的路径是否正确。无法弄清楚是什么原因造成的。

标签: c++sfml

解决方案


推荐阅读