2017-05-15 6 views
1

Wie erhält man die erwartete sf :: String-Breite, wenn sie auf dem Fenster gezeichnet wird? Derzeit weiß ich nur, wie man mit der GetSize() Methode die Höhe von sf :: String erreicht.SFML - Wie erwartet Stringbreite?

OBS: Ich verwende SFML v1.6 unter Linux.

+1

Hinweis: SFML 1.6 ist * alt *. Du solltest wirklich zu diesem Punkt zu 2.4.2 gehen. –

+0

Ja, ich benutzte es, weil es auf dem PC der Universität vorinstalliert war. – Hydren

Antwort

3

Nach den doc, sf::String hat eine GetRect Elementfunktion, die ein sf::Rect<float> zurückkehrt, mit einem GetWidth() Mitglied.

float width = str.GetRect().GetWidth(); 
+0

George, deine Antwort hat es fast verstanden. 'GetRect(). GetWidth()' hat den Trick gemacht. In SFML 1.6 war das Feld 'width' stattdessen eine' GetWidth() 'Methode. – Hydren

+0

Aktualisieren Sie die Antwort, damit ich sie als beantwortet markieren kann. – Hydren

1

Sie könnten durch sf::Font::GetImage gehen, die die gezeichneten Zeichen der Schriftart zurückgibt, und nachdem Sie sf::Image::GetWidth verwenden können.

Auch, wenn Sie einen sehr guten Grund haben, mit 1.6 zu bleiben, würde ich sehr empfehlen, dass Sie auf eine neuere Version aktualisieren. 1.6 ist älter als 7 Jahre. Es wird nicht unterstützt und hat ein paar Bugs.