Получение размеров текста в 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 );

кто-нибудь знает ?

спасибо :)

2 ответов


глядя на документацию, кажется, что функция getLocalBounds может быть полезным для вас. Строка будет:

float width = text.getLocalBounds().width;

Я не уверен, если sf::Text объект добавит любое заполнение на концах ограничивающего прямоугольника.

кроме того, вы можете использовать findCharacterPos примерно так:

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

здесь numChars - количество символов в строке вашего


вы можете использовать getGlobalBounds (), чтобы получить размер/координаты после преобразования (поворот, масштаб, перемещение...). В противном случае это getLocalBounds().

Doc:http://www.sfml-dev.org/documentation/2.3.1/classsf_1_1Text.php