2014-04-17 169 views
2

我最近開始在C++中使用SFML,並且在繪製文本時遇到問題。我設法運行了默認程序,它向窗口繪製了一個綠色圓圈,所以我假設沒有硬件問題。我使用SFML 2.1和Visual Studio 2013年C++ Sfml文本輸出

這裏是我的代碼:

#ifdef SFML_STATIC 
#pragma comment(lib, "glew.lib") 
#pragma comment(lib, "freetype.lib") 
#pragma comment(lib, "jpeg.lib") 
#pragma comment(lib, "opengl32.lib") 
#pragma comment(lib, "winmm.lib") 
#pragma comment(lib, "gdi32.lib") 
#endif // SFML_STATIC 

#include <SFML/Window.hpp> 
#include <SFML/Graphics.hpp> 
#include <iostream> 


int main() 
{ 

sf::RenderWindow mywindow(sf::VideoMode(800, 600), "SFML window"); 

sf::Text text; 

text.setString(std::string("Hello World!")); 

text.setCharacterSize(24); 

text.setColor(sf::Color::Red); 

text.setStyle(sf::Text::Bold); 

    mywindow.clear(); 

    mywindow.draw(text); 

    mywindow.display(); 

    std::cin.get(); //To prevent the window automatically closing. 

} 

感謝您的幫助提前!

回答

1

在繪製文本之前,需要使用它的loadFromFile()函數創建一個sf :: Font對象來提供字體,然後將其作爲參數傳遞給sf :: Text的setFont()函數。

sf::Font font; 
font.loadFromFile("file_path"); 
text.setFont(font); 
+0

Ahh我沒有意識到它需要提供一種字體,我記得在某處讀了一個關於默認字體和跳過的步驟。謝謝你的幫助! – user2874417

+0

很高興爲您服務!如果我正確記得這是最近的一次改變,你可能會從舊教程中讀到。 – Veritas