SFML 窗口中的 Hello World
让我们编写一个小程序,它将打开一个窗口,并在屏幕上写下 Hello World
。
#include <SFML\Graphics.hpp>
#include <cassert>
int main() {
sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
sf::Font font;
//You need to pass the font file location
if (!font.loadFromFile(/*
Put the filename that identify the font file you want to load*/"myfont.ttf")) {
return -1;
}
sf::Text message("Hello, World !", font);
while (sfmlWin.isOpen()) {
sf::Event e;
while (sfmlWin.pollEvent(e)) {
switch (e.type) {
case sf::Event::EventType::Closed:
sfmlWin.close();
break;
}
}
sfmlWin.clear();
sfmlWin.draw(message);
sfmlWin.display();
}
return 0;
}
让我们解释一下我们在那里做了什么。
首先,我们创建了一个 sf::Font
对象。我们需要此对象来存储我们将用于显示文本的字体数据。之后,我们调用了 loadFromFile
方法,用于在内存中加载字体。我们应该注意到 SFML 不了解你的系统字体,因此你需要提供文件名,而不是字体名称
之后,我们创建了一个 sf::Text
对象。我们将 3 参数构造函数称为:
- 要显示的字符串
- 对象将使用的字体
- 像素中的字符大小,我们没有在这里传递,因此 il 将被设置为默认值:30
由于 sf::Text
对象已准备就绪,我们只需要在主 sfml 循环中绘制它,方法是在我们之前创建的 sfmlWin
渲染窗口对象上调用 draw 方法