2012-11-06 100 views
7

我不知道我是如何得到我的SFML文字的尺寸是多少?獲取文本的尺寸SFML

我試圖做這樣的:

sf::Text text("Hello SFML", font, 50); 

// using text.getRect() 
// i also tried getScale() & getSize() 
// neither are correct 

text.setPosition(window.getSize().y/2 - text.getRect().y,50); 

任何一個知道的?

謝謝:)

回答

13

看着好像功能 getLocalBounds可以使用你的文檔。該生產線是:

float width = text.getLocalBounds().width; 

我不知道如果sf::Text對象將在邊框的兩端加任何填充。

或者,你可以利用findCharacterPos的東西,如:

float width = text.findCharacterPos(numChars - 1).x - text.findCharacterPos(0).x; 

其中numChars是一個字符您text對象的字符串中的數字。然而,由於findCharacterPos將返回全局座標,它可能更方便地使用getLocalBounds,這樣你不必擔心你的text對象是否已應用到任何轉換。

+1

本地邊界完美地工作!謝謝 ! – Sir