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 方法