Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.03.2017, 00:46

Libgdx fontsize wird ignoriert

Hallo zusammen,

arbeite mich gerade in das oben genannte Framework,
folgenden Code nutze ich.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class Hud {
    public Stage stage;
    private Viewport viewport;

    //HP(Healthpoints)
    private Integer hp;

    // HUD Labels
    private Label hpBarLabel;
    private Label hpBarNameLabel;
    
    

    public Hud(SpriteBatch sb) {
        
        hp = 300;

        viewport = new FitViewport(ManaMain.V_WIDTH, ManaMain.V_HEIGHT, new OrthographicCamera());
        stage = new Stage(viewport, sb);
        Skin skin = new Skin(Gdx.files.internal("json/skin.json"));
        BitmapFont font = skin.getFont("TestFontDefault");
        
        Table table = new Table();
        table.bottom();
        table.setFillParent(true);
        
        hpBarLabel      = new Label(String.format("%04d", hp), new Label.LabelStyle(font, font.getColor()));
        hpBarNameLabel  = new Label("HP", new Label.LabelStyle(font, font.getColor()));
    
        table.add(hpBarNameLabel).expandX();
        table.row();
        table.add(hpBarLabel).expandX();
        
        stage.addActor(table);
    }

}


Auf der Seite http://kvazars.com/littera/
erstelle ich mir meinen Font + png.
Der Font wird auch korrekt erkannt nur die Größe der einzelnen Zeichen also der Fontsize wird komplett ignoriert, egal welche Werte ich beim Exportieren oder in der Datei selber einstelle, die Größe bleibt die selbe.

Muss ich die Fontsize dem Label über den Konstruktor übergeben, auf anhieb habe ich nichts dazu gefunden.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

26.03.2017, 00:54

Wenn ich das richtig sehe dann ist die Font doch in einer festen Schriftgröße vorhanden. Libgdx geht solange du keine Font angibst davon aus dass du die default Font verwenden möchtest. Diese hat eine Größe von 15pt. Das Problem sollte also an sich deine Font sein. Was exportierst du denn dort? Ist das einfach ein Image? Oder gibt es weitere spezielle Daten dazu?
Der von dir gepostete Link erfordert den Flashplayer weshalb ich das grad nicht selbst testen kann. Ich vermute aber mal dass deine Font in einer falschen Größe exportiert wird. Möglicherweise reicht es dann schon aus die exportierte Grafik zu skalieren. Falls da noch weitere Daten exportiert werden müssen diese gegebenenfalls angepasst werden.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

26.03.2017, 03:00

Quellcode

1
2
Skin skin = new Skin(Gdx.files.internal("json/skin.json"));
BitmapFont font = skin.getFont("TestFontDefault");


Also der Font ist kein Default Font von LibGdx.

Quellcode

1
2
3
4
5
6
7
8
9
10
{
    "com.badlogic.gdx.graphics.g2d.BitmapFont": {
        "TestFontDefault" : { "file": "fonts/font.fnt"}
    },
    
    
    "com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle": {
        "default": { "font" : "TestFontDefault"}
    }
}


so sieht meine json datei aus.

Ich habe zwei Dateien die aus dem Export entstehen, einmal eine PNG und dann eine .fnt file. Die Fontsize habe ich schon in mehreren Größen exportiert, aber im Programm selber wird die Größe nicht berücksichtigt.


EDIT: hat sich erledigt, die Fontsize skaliert wohl mit dem viewport.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hades85« (26.03.2017, 15:57)


Werbeanzeige