gpt4 book ai didi

java - 将 Freetypefont 放入 libgdx 皮肤

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:24 24 4
gpt4 key购买 nike

在我的 uiskin.json 中有这个

com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: text/default.fnt } }

当我在 Assets 文件夹的文本文件夹中有 default.fnt 时,这很好...

但是我想使用 Freetypefont。

如何创建 Freetypefont 并将其加载到 uiskin 文件中?

最佳答案

更新

感谢 Jos van Egmond 的评论告诉我如何执行此操作并仍然加载 Skin来自 AssetManager我决定更新答案。旧的答案(以及这样做的替代方法)在下面仍然保持不变。

新的流程是这样的:

  • 加载您的字体文件。
  • 创建一个 ObjectMap<String, Object> 并将您的字体放入这张 map 中。
  • 创建 SkinParameter并给它 ObjectMap作为参数。
  • 加载您的 Skin通过AsserManager像往常一样使用创建的 SkinParameter .

代码可能是这样的:

/* Load your fonts */
load font1...
load font2...

/* Create the ObjectMap and add the fonts to it */
ObjectMap<String, Object> fontMap = new ObjectMap<String, Object>();
fontMap.put("font1", font1);
fontMap.put("font2", font2);

/* Create the SkinParameter and supply the ObjectMap to it */
SkinParameter parameter = new SkinParameter(fontMap);

/* Load the skin as usual */
assetManager.load("file/location/of/your/skin", Skin.class, parameter);

当前接受的答案实际上(有点)不正确。 This blog post描述了一种供您引用生成的方法 BitmapFont s 在你的 Json 文件中。过程是这样的:

  • 使用默认构造函数创建空白皮肤文件。
  • 将您的字体添加到皮肤。
  • 将您的图集文件添加到您的皮肤。
  • 将您的 Json 文件加载到您的皮肤。

代码可能是这样的:

// Create a new skin using the default constructor and
// add your fonts to it.
Skin skin = new Skin();
skin.add("myFont", myFont, BitmapFont.class);

// Remember that this texture atlas is NOT automatically disposed by the skin,
// so keep a reference and dispose of it yourself.
skin.addRegion(new TextureAtlas("file/location/of/your/atlas");
skin.load(Gdx.files.internal("file/location/of/your/skin"));

你现在可以在你的皮肤 Json 中做这样的事情:

...,
font: "myFont",
...

尽管这是一种解决方法,但这也意味着您不能(至少我还没有找到方法)通过 AssetManager 加载您的皮肤。 .您仍然可以加载 TextureAtlas不过是通过经理。

关于java - 将 Freetypefont 放入 libgdx 皮肤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com