c++ SFML -尝试将窗口重载为函数参数

ruarlubt  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(119)

我在Visual Studio 2019中使用SFML和C++。我想尝试创建一个函数来简化将文本打印到窗口的过程。

#include "SFML/Graphics.hpp"
#include "SFML/Window.hpp"
#include <string>

void type_text(std::string t, sf::RenderWindow w) {
        sf::Font font;

        font.loadFromFile("consola.ttf");

        sf::Text text(t, font, 12);
        w.draw(text);
        w.display();
}

int main() {
    sf::RenderWindow window(sf::VideoMode(860, 540), "Test");
    sf::Event e;

    while (window.isOpen()) {
        while (window.pollEvent(e)) {
            if (e.type == sf::Event::Closed)
                window.close();
        }
    }
    
    type_text("this is a test", window); // <= THE PROBLEM

    return 0;
}

字符串
在问题行中,“window”作为错误被加下划线。

sf::RenderWindow::RenderWindow(const sf::RenderWindow &)': attempting to reference a deleted function


基本上,我如何才能使它,所以我能够使用 * 窗口 * 重载功能和使用它?

efzxgjgh

efzxgjgh1#

窗口对象sf::RenderWindow w不能被复制,必须通过引用sf::RenderWindow& w传递给type_text()

相关问题