sf :: Text不显示?

时间:2019-11-23 17:42:29

标签: c++ text sfml

我试图在窗口上显示sf :: Text,但它不起作用,我也不明白为什么!

这是代码示例: 构造函数

timerText.setFont(getFont());
timerText.setString("test");
timerText.setCharacterSize(70);
timerText.setColor(Color::Red);

getFont():

Font& Timer::getFont(){
Font font;
if(!font.loadFromFile("arial.ttf")){
    cout << "font not loaded" << endl;
}
return font;

}

draw():

timerText.setPosition(Vector2f(center.x - 8, center.y - size.y/2 + 12));
window.draw(timerText);

我所有其他绘制都工作正常,并且在加载字体时我没有出错。 对不起,我的英语,谢谢您的帮助!

2 个答案:

答案 0 :(得分:0)

通过在类中添加私有变量sf :: Font并通过交换来解决 setFont(getFont()); 通过 font.loadFromFile(fontFile); setFont(font);

我仍然不明白我的错误,但是现在可以了。

答案 1 :(得分:0)

getFont(),将字体加载到堆栈存储器中的局部变量中。该函数返回时,它会自动删除。

您应该将其移动或分配到其他位置。

Font font;
Font& Timer::getFont(){
    if(!font.loadFromFile("arial.ttf")){
        cout << "font not loaded" << endl;
    }
    return font;
}