[GELÖST] TextWidth() funktioniert seltsam?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] TextWidth() funktioniert seltsam?

BeitragSa, Jun 11, 2016 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe ein Problem (Überraschung!): Ich lade einen Nicht-Monospaced-ImageFont (Hier zu finden: http://www.1001freefonts.com/vanilla_whale.font) und versuche einen Text, der mit diesem Font geschrieben wurde, zu zentrieren. Folgende Texte habe ich in petto: Code: [AUSKLAPPEN]
Neues Spiel
Spiel laden
Mitwirkende
Beenden

Wie man unschwer erkennen kann, sind drei Texte fast gleich lang und einer wesentlich kürzer, jedoch hat eine Debugausgabe der mit TextWidth()-ermittelten Breiten folgende erstaunliche Ergebnisse gebracht: Code: [AUSKLAPPEN]
DebugLog:Mitwirkende                               : 303.000000
DebugLog:Beenden                                   : 301.000000
DebugLog:Spiel laden                               : 300.000000
DebugLog:Neues Spiel                               : 302.000000

Ich habe schon gelesen, dass die Skalierung bei der Ermittlung nicht beachtet wird, aber auch wenn ich die Skalierung mit reinnehme (durch Multiplikation der Textbreite mit dem Scale-X-Faktor), ändert sich nichts (liegt daran, dass ich nicht skaliere).
Meine Frage ist jetzt: Wieso kommen solche Werte da raus? es kann doch nich sein, dass Beenden breiter ist als Spiel laden. Und warum unterscheiden sich die Werte fast nicht? Mindestens bei Beenden hätte ich mit einer Differenz von mindestens 10 Pixeln gerechnet.

EDIT: Das ursprüngliche Problem war, dass ich den Text zentrieren wollte, aber alle drei Texte auf der gleichen Höhe starteten.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Sa, Jun 11, 2016 18:40, insgesamt 2-mal bearbeitet

Xeres

Moderator

BeitragSa, Jun 11, 2016 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast noch nicht wirklich ein Problem beschrieben. Du glaubst die Werte stimmen nicht? Hast du schon ein Vergleich angestellt, ob die Darstellung tatsächlich verschoben ist?
Wie sieht dein Testcode aus?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragSa, Jun 11, 2016 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich denke dieser Thread kann gelöscht werden: Es stellte sich heraus, dass TextWidth korrekt arbeitet, ich aber nicht... Embarassed

Ich habe mir vorher aus dem Text ein Slice rausgenommen (Ich hoffe das heißt so, ich meine folgendes: Text[Position1..Position2]) und dort bei kurzen Texten eine viel zu große Endposition genommen. Blitzmax hat den Rest dann einfach mit Leerzeichen aufgeüllt Arrow Alle Strings sind gleich lang und haben fast identische TextWidth()s.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group