GuiLabel - Breite des Elements / Länge des Textes

  • German

We've posted a status update with some first screenshots of the new terrain generation. There is also a new update available for the Java version!

  • GuiLabel - Breite des Elements / Länge des Textes

    Hi @red51,

    in einigen Situationen ist der Text der in einem GuiLabel angezeigt wird etwas zu lang. Jetzt würde ich gerne hingehen und den Text automatisch verkürzen (z.B. abc...xyz), dafür müsste ich aber herausbekommen wie breit der Text (in % oder px) ist, wenn Font und Size angewendet wird.

    Hilfreich wehre, auch wenn ich die % und px umrechnen könnte, leider fehlt mir dafür der überblick.

    Hättest du da eine Idee für ein "Work araund" oder eine Funktion zur Hand?

    ?(
  • noci wrote:

    Jetzt würde ich gerne hingehen und den Text automatisch verkürzen (z.B. abc...xyz), dafür müsste ich aber herausbekommen wie breit der Text (in % oder px) ist, wenn Font und Size angewendet wird
    Das stimmt, das ist leider wirklich etwas problematisch... das Problem ist, dass die GUI serverseitig nicht vorhanden ist, d.h. der Server "weiß" effektiv nicht wirklich, wie groß das GUI Element bei relativen Koordinaten tatsächlich ist. Diese Informationen hat nur der Client...

    Mein Vorschlag wäre, dass du versuchst, deine GUI an eine Auflösung von 1920x1080 (also FullHD) anzupassen, da diese Auflösung mit Abstand am weitesten verbreitet ist. Wenn du diese Auflösung bei dir einstellst, kannst du ich an den jeweiligen Größen und Positionen der GUI Elemente orientieren, dann wird das hinterher normalerweise bei anderen Spielern mit derselben Auflösung genauso aussehen.

    Ist leider keine ganz so zufriedenstellende Lösung, aber ich fürchte, dass das momentan die einzige Möglichkeit ist :|

    noci wrote:

    Hilfreich wehre, auch wenn ich die % und px umrechnen könnte, leider fehlt mir dafür der überblick.
    Hier könntest du ggf. die "Player.getScreenResolutionX()" und "Player.getScreenResolutionY()" Funktionen verwenden (diese liefern die aktuelle Auflösung [Breite/Höhe] des Clients zurück). Wenn du bspw. ein GUI Element mit relativen Größenangaben hast, könntest du diese so umrechnen:

    Java Source Code

    1. GuiElement element = ...;
    2. float absWidth = element.getWidth() * player.getScreenResolutionX();
    3. float absHeight = element.getHeight() * player.getScreenResolutionY();
    Bei Labels wird das leider nicht funktionieren, da diese keine expliziten Größenangaben haben (sondern die Größe wird erst clientseitig abhängig vom Font und der Fontgröße bestimmt) :/
  • Hi @red51,

    noch mal ein gedanke zu dem Thema.

    in jiw-gui.jar\de\jiw\gui\resources\Fonts\Default.fnt hab ich Font Daten gefunden.Wenn ich das richtig Verstehe kann ich hier das Verhältnis der height=50px mit der Label.FontSize=24px=?FontHeight?, über width=25px die Passende "FontWidth=12px" Berechnen? Wobei die "id=97" gleich "ascii=97" dem "a" entspricht? (ich befürchte schon, das nicht)?

    Kann ich die Daten/Datei aus dem Spiel Laden, oder Extrhiere ich sie einfacher nach resources?
    Wie kann ich eigendlich andere Daten, wie Textdatein, aus den resources laden :?:
    Bislang klappt das nur mit Bilder, Saund und Modelle.



    Danke schon mal ^^.

    ### Edit: ||
    Oke, mann Muss den Pfad richtig angeben und das ganze als Stream laden. :cursing:
    Das geht natürlich auch mit Externen Datein. :D

    die letzte Fage kriege ich auch noch raus 8)

    The post was edited 1 time, last by noci ().