如何在libgdx中从皮肤缩放BitmapFontShader?

时间:2014-08-11 07:42:28

标签: libgdx shader font-size

这是我的皮肤文件:

{
com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } },
com.badlogic.gdx.graphics.Color: {
    green: { a: 1, b: 0, g: 1, r: 0 },
    white: { a: 1, b: 1, g: 1, r: 1 },
    red: { a: 1, b: 0, g: 0, r: 1 },
    black: { a: 1, b: 0, g: 0, r: 0 }
},
com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {
    default: { down: Button-Pressed, up: Button },
    toggle: { down: Button-Pressed, checked: Button-Pressed, up: Button }
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
    default: { down: Button-Pressed, up: Button, font: default-font, fontColor: white },
    toggle: { down: Button-Pressed, up: Button, checked: Button-Pressed, font: default-font, fontColor: white, downFontColor: red }
},
com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
    default: { titleFont: default-font, background: window, titleFontColor: white },
    dialog: { titleFont: default-font, background: window, titleFontColor: white }
},
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
    default: { font: default-font, fontColor: white }
},
}

我使用以下代码更改了默认字体:

texture = new Texture(Gdx.files.internal("default.png"), true);
bitmapFontShader = new BitmapFontShader(Gdx.files.internal("default.fnt"), new TextureRegion(texture), false, 1 / 5f);

skin = new Skin(Gdx.files.internal("myskin.json"));
skin.remove("default-font", BitmapFont.class);
skin.add("default-font", bitmapFontShader, BitmapFont.class);

现在我尝试缩放它:skin.getFont("default-font").scale(0.5f);并且它不起作用。 有人可以告诉我可能是什么原因?我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

请尝试从皮肤文件中删除以下行:     com.badlogic.gdx.graphics.g2d.BitmapFont:{default-font:{file:default.fnt}},

然后使用以下代码加载:

Skin skin=new Skin();
skin.add("default-font", bitmapFontShader);
skin.addRegions(new TextureAtlas(Gdx.files.internal("myskin.atlas")));
skin.load(Gdx.files.internal("myskin.json"));