好吧,我设法在我的json皮肤中使用我的assetManager生成的FreeType字体,但不是令人满意的方式。以下代码有效。
/* Manager loaders */
manager = new AssetManager();
InternalFileHandleResolver resolver = new InternalFileHandleResolver();
manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
/* Generating the font with the assetManager */
FreetypeFontLoader.FreeTypeFontLoaderParameter param = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
param.fontFileName = "UI/kenvector_future.ttf";
manager.load("myfont.ttf", BitmapFont.class, param);
manager.finishLoadingAsset("myfont.ttf");
BitmapFont newFont = manager.get("myfont.ttf");
/* Passing the name in the SkinLoader parameter */
ObjectMap<String, Object> oMap = new ObjectMap<String, Object>();
oMap.put("myfont", newFont);
manager.load("UI/skin.json", Skin.class, new SkinLoader.SkinParameter("UI/skin.atlas", oMap));
和json
{
com.badlogic.gdx.graphics.g2d.BitmapFont: {
arial-15: {
file: com/badlogic/gdx/utils/arial-15.fnt
}
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
textButton: {
up: buttonLong_blue,
down: buttonLong_blue_pressed,
font: arial-15
},
textButton2: {
up: buttonLong_beige,
down: buttonLong_beige_pressed,
font: myfont
}
},
}
它有效,但我想摆脱这段代码的生成部分(在“生成blablabla assetManager”下面)以及oMap部分。
我尝试在位图部分添加myfont,我尝试为FreeTypeFontLoader和FreeTypeFontLoader参数添加一个节点。它不起作用。
有没有办法实现我想要做的事情?