【问题标题】:Libgdx Skin not Updating when Changing Font Programmatically以编程方式更改字体时,Libgdx 皮肤未更新
【发布时间】:2018-01-13 09:36:26
【问题描述】:

首先,我将皮肤加载为 json 文件。在文件中,我放置了两个 BitmapFont 定义(“font”和“big-font”)并将它们几乎留空(我确实加载了一个虚拟的“.fnt”文件以防止解析器抱怨)。然后我使用以下代码生成了两个 FreeType 字体:

//start font generator
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/button-font.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameters = new FreeTypeFontGenerator.FreeTypeFontParameter();

//default font (the sizes are arbitrary, since it did not work...)
parameters.size = 10;
BitmapFont defaultFont = generator.generateFont(parameters);

//big font
parameters.size = 100;
BitmapFont bigFont = generator.generateFont(parameters);

并将它们设置为皮肤字体,如下所示:

skin.add("font", defaultFont, BitmapFont.class);
skin.add("big-font", bigFont, BitmapFont.class);

问题在于 gui(尤其是使用“font”字体的 TextButton)似乎并不关心我以编程方式所做的事情,而是继续使用我在 json 文件中设置的虚拟字体。

我做错了什么?有没有更好的集成ttf字体和json皮肤解析的方法?

提前感谢您的帮助。

【问题讨论】:

    标签: java user-interface libgdx truetype skin


    【解决方案1】:

    按照以下步骤操作:

    1. 首先,从 TTF 文件创建字体

      FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/button-font.ttf"));
      FreeTypeFontParameter parameter = new FreeTypeFontParameter();
      parameter.size = 10;
      BitmapFont defaultFont = generator.generateFont(parameter); 
      generator.dispose(); // don't forget to dispose to avoid memory leaks!
      
    2. 使用默认构造函数创建一个空白皮肤并将您的字体添加到皮肤中。

      Skin skin = new Skin();
      skin.add("font",defaultFont);
      
    3. 将您的地图集文件添加到您的皮肤中。

      skin.addRegion(new TextureAtlas(Gdx.files.internal("mySkin.atlas")));
      
    4. 将您的 Json 文件加载到您的皮肤中。

      skin.load(Gdx.files.internal("mySkin.json"));
      
    5. 然后,在您的 JSON 文件中,您可以引用“字体”

      {
        font: font
      }
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2015-04-18
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 2017-04-27
      • 2020-07-06
      相关资源
      最近更新 更多