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

ruarlubt  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(138)

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

  1. #include "SFML/Graphics.hpp"
  2. #include "SFML/Window.hpp"
  3. #include <string>
  4. void type_text(std::string t, sf::RenderWindow w) {
  5. sf::Font font;
  6. font.loadFromFile("consola.ttf");
  7. sf::Text text(t, font, 12);
  8. w.draw(text);
  9. w.display();
  10. }
  11. int main() {
  12. sf::RenderWindow window(sf::VideoMode(860, 540), "Test");
  13. sf::Event e;
  14. while (window.isOpen()) {
  15. while (window.pollEvent(e)) {
  16. if (e.type == sf::Event::Closed)
  17. window.close();
  18. }
  19. }
  20. type_text("this is a test", window); // <= THE PROBLEM
  21. return 0;
  22. }

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

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


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

efzxgjgh

efzxgjgh1#

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

相关问题