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