【问题标题】:Loading TrueType font in LibGDX using AssetManager class使用 AssetManager 类在 LibGDX 中加载 TrueType 字体
【发布时间】:2015-06-08 12:31:09
【问题描述】:

我正在尝试使用 libGDX 的 AssetManager 类加载 TrueType 字体。

这就是我初始化manager 变量的方式:

manager = new AssetManager();

FileHandleResolver resolver = new InternalFileHandleResolver();
manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));

我创建了一个方法,在指定目录中搜​​索文件,然后使用此代码..(它在函数中,以路径为参数)

FreeTypeFontLoaderParameter parameters = new FreeTypeFontLoaderParameter();
parameters.fontFileName = path;
parameters.fontParameters.size = 10;
manager.load(path, BitmapFont.class, parameters);

...将字体添加到加载队列,但是当我启动我的应用程序时,它一直抛出异常:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Asset not loaded: assets/fonts\Test.ttf.gen
at com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:536)
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:356)
at my.app(App.java:56)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:215)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Asset not loaded: assets/fonts\Test.ttf.gen
at com.badlogic.gdx.assets.AssetManager.get(AssetManager.java:127)
at com.badlogic.gdx.graphics.g2d.freetype.FreetypeFontLoader.loadSync(FreetypeFontLoader.java:40)
at com.badlogic.gdx.graphics.g2d.freetype.FreetypeFontLoader.loadSync(FreetypeFontLoader.java:20)
at com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:139)
at com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:89)
at com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:477)
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:354)
... 3 more

App.java 的第 56 行如下所示:

if(!this.resourceManager.getManager().update()) {

我可以从异常中读取名为“Test.ttf.gen”的资产无法加载,但我不知道在哪里可以得到它...我的意思是,我有 .ttf 文件,我认为这就足够了.

我在 Google 上搜索过,但似乎没有人遇到过类似的问题。

【问题讨论】:

  • 路径看起来很可疑:assets/fonts\Test.ttf.gen
  • 我也有这个问题。它只发生在 Windows 平台上。你呢?

标签: java libgdx


【解决方案1】:

我只在 Windows 机器上遇到过这个问题。结果是我用来存储资产路径的类返回了带有特定于每个平台的路径分隔符的字符串。所以在 Windows 上它返回一个带有正斜杠的路径字符串。 LibGDX AssetManager 类在内部使用反斜杠,但仍会加载带有正斜杠的字符串。

问题是加载的资产存储在字典中,路径作为带有正斜杠的字符串键。当您尝试使用反斜杠路径获取资产时,它在字典中找不到键。

长话短说,确保您检查您的路径是否始终使用 LibGDX 的正斜杠,即使在 Windows 上也是如此。

我也可能会提交错误报告。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多