我正在使用uiskin.png,uiskin.atlas,uiskin.json和default.fnt作为此链接提供的upcomming代码的ressources。https://github.com/libgdx/libgdx/tree/master/tests/gdx-tests-android/assets/data
首先,我从BitmapFont
文件中创建ttf
,因为它支持任何大小而不会出现像素化。
然后我将uiskin.json
加载到我的skin
。之后我删除了默认字体,并将生成的tff字体添加到skin
default-font
。
虽然我更改了default-font
,但字体尚未更改。
问题在哪里?如何更改皮肤的字体?
注意:我已经测试过显示mainMenuFont50
。字体似乎工作正常。
public class Screen{
private BitmapFont mainMenuFont50;
private Stage stage;
private Skin skin;
private TextButton buttons;
public Screen(GdxGame game){
//creating BitmapFont from ttf
generator = new FreeTypeFontGenerator(Gdx.files.internal("font/Capture_it.ttf"));
parameter = new FreeTypeFontParameter();
parameter.size = 50;
mainMenuFont50 = generator.generateFont(parameter);
generator.dispose();
this.skin = new Skin();
this.skin.load(Gdx.files.internal("ui/uiskin.json"));
this.skin.remove("default-font", BitmapFont.class);
this.skin.add("default-font", mainMenuFont50);
buttons = new TextButton("Hello World", skin);
stage.addActor(buttons);
}
}
答案 0 :(得分:2)
您无法更改皮肤的字体。构造外观并添加自定义字体。
按照以下步骤操作:
使用默认构造函数创建空白外观。
Skin skin = new Skin();
将所需字体添加到生成的皮肤
skin.add("font", mainMenuFont50);
将您的地图集文件添加到您的皮肤。
skin.addRegion(new TextureAtlas(Gdx.files.internal("uiskin.atlas")));
编辑并将json文件加载到皮肤上。
skin.load(Gdx.files.internal("uiskin.json"));
您的JSON文件引用了“font”
{
font: font
}