错误:
...在第 15 行,我尝试初始化窗口:
#include <iostream>
#include <SFML/Graphics.hpp>
static class Renderer {
public:
static sf::RenderWindow window;
};
sf::RenderWindow Renderer::window = sf::RenderWindow(sf::VideoMode(1200, 1000), "Proj");
class Quad {
public:
sf::Vector2<float> Scale;
sf::Vector2<float> Pos;
public:
Quad(sf::Vector2<float> P, sf::Vector2<float> S) {
Pos = P;
Scale = S;
}
sf::RectangleShape RenderMe() {
sf::RectangleShape s;
s.setScale(Scale);
s.setPosition(Pos);
return s;
}
};
int main()
{
std::cout << "Hello World!\n";
new Renderer;
Quad s(sf::Vector2<float>(40,40), sf::Vector2<float>(20,20));
while (Renderer::window.isOpen())
{
sf::Event event;
while (Renderer::window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
Renderer::window.close();
}
Renderer::window.clear();
Renderer::window.draw(s.RenderMe());
Renderer::window.display();
}
return 0;
return 0;
}
脚本中的其他所有内容都有效。
据我所知,我已经正确设置了我的文件系统,所有问题都与我的脚本有关(我认为)
我主要尝试移动 init,以及更改某些位,例如不包括所有内容,但这些都会导致不同的错误,这似乎是最正确的。
删除与类
Renderer
和 Renderer::window
相关的所有内容。
在主函数顶部放置一个定义:
sf::RenderWindow window(sf::VideoMode(1200, 1000), "Proj");
并在您使用过
window
的地方使用 Renderer::window
。
如果你坚持拥有一个 Renderer 对象,它应该看起来像这样:
class Renderer {
public:
sf::RenderWindow window;
Renderer() : window(sf::VideoMode(1200, 1000), "Proj")) {}
};
并且在主函数中使用一个简单的
Renderer r;
就足够了。