您如何在与打开窗口的功能的不同函数中使用Draw函数

  • 本文关键字:函数 Draw 功能 开窗口 c++ sfml
  • 更新时间 :
  • 英文 :


我正在使用SFML用于图形的C 中的基本游戏。它旨在使用具有功能的网格系统来确定每个正方形中应显示的内容。但是,编译器无法识别功能中窗口的引用。

为了保持更易于扩展的功能,要显示每种类型的地形,将坐标作为输入(可能不是正确的术语(。

好问题。SFML建议您在主函数中创建窗口,但是,如果要修改它,则可以通过参考将其传递。例如:

#include <SFML/Graphics.hpp>
void doSomething(sf::RenderWindow& window) {
    sf::RectangleShape shape(sf::Vector2f(100, 100));
    shape.setFillColor(sf::Color::Green);
    shape.setPosition(50, 50);
    window.draw(shape);
    window.display();
}
int main() {
    sf::RenderWindow window(sf::VideoMode(500, 500), "Test", sf::Style::Close);
    while (window.isOpen()) {
    sf::Event event;
    while (window.pollEvent(event)) {
        if (event.type == sf::Event::Closed) {
            window.close();
        }
    }
    window.clear(sf::Color::Black);
    //draw here
    doSomething(window);
    }
    return 0;
}

您应该看看https://www.sfml-dev.org/tutorials/2.5/。具体来说,我会查看https://www.sfml-dev.org/tutorials/2.5/window-window.php

最新更新