2012-11-06 9 views
7

Zastanawiam się, jak uzyskać wymiary mojego tekstu w SFML?Uzyskiwanie wymiarów tekstu w SFML

starałem się zrobić to tak:

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); 

Czy ktoś wie?

Dzięki :)

Odpowiedz

13

Patrząc w dokumentacji wydaje się, że funkcja getLocalBounds mogłyby być przydatne dla Ciebie. Linia będzie:

float width = text.getLocalBounds().width; 

Nie jestem pewien, czy obiekt sf::Text by dodać dowolną wyściółkę na końcach prostokąta ograniczającego.

Alternatywnie, można skorzystać z findCharacterPos z czymś takim:

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

gdzie numChars jest liczba znaków w ciągu swojego obiektu text. Jednak ponieważ findCharacterPos zwróci globalne współrzędne, prawdopodobnie wygodniej będzie użyć getLocalBounds, w ten sposób nie musisz się martwić, czy Twój obiekt text ma zastosowane jakiekolwiek transformacje.

+1

lokalne ograniczenia zadziałały idealnie! Dziękuję Ci ! – Sir

Powiązane problemy