10

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

誰か知っていますか ?

ありがとう :)

4

2 に答える 2

20

ドキュメントを見ると、この機能 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

于 2012-11-06T05:56:54.107 に答える
0

getGlobalBounds() を使用して、変換 (回転、スケール、移動...) 後のサイズ/座標を取得できます。それ以外の場合は getLocalBounds() です。

ドキュメント: http://www.sfml-dev.org/documentation/2.3.1/classsf_1_1Text.php

于 2015-08-18T23:26:09.457 に答える