【问题标题】:LIBGDX Asset manager load true type fontLIBGDX 资产管理器加载真字体
【发布时间】:2017-10-08 02:28:19
【问题描述】:

我们正在尝试在 libgdx 项目中使用资产管理器加载 true type 字体。我们严格遵循wiki entry 。但是,我们得到了异常

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load dependencies of asset: basicfont.ttf

使用以下代码

 // First, let's define the params and then load our smaller font
    FreetypeFontLoader.FreeTypeFontLoaderParameter parameter = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
    parameter.fontFileName = "basicfont.ttf";
    parameter.fontParameters.size = 10;
    game.manager.load("font.ttf", BitmapFont.class, parameter);
    game.manager.finishLoading();

我们已经在没有资产管理器的情况下加载了字体。 另外,我们也看了this link,按照说明进行操作,并没有解决问题。

【问题讨论】:

    标签: java android fonts libgdx


    【解决方案1】:
    String path="basicfont.ttf";     //can be inside nested folder
    String fileName = "font.ttf" ;   // it can be any name with extension, will use to load and retrieve
    

    以这种方式加载:

    manager=new AssetManager();
    FileHandleResolver resolver = new InternalFileHandleResolver();
    manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
    manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
    
    FreetypeFontLoader.FreeTypeFontLoaderParameter parms = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
    parms.fontFileName = path;    // path of .ttf file where that exist 
    parms.fontParameters.size = 10;
    manager.load(fileName, BitmapFont.class, parms);   // fileName with extension, sameName will use to get from manager
    
    manager.finishLoading();  //or use update() inside render() method
    

    Android 文件系统区分大小写。

    【讨论】:

    • 谢谢!像魅力一样工作:)
    【解决方案2】:
    parameter.fontFileName = "basicfont.ttf";
    game.manager.load("font.ttf", BitmapFont.class, parameter);
    

    我认为您应该在load 方法中使用相同的字体名称

    game.manager.load("basicfont.ttf", BitmapFont.class, parameter);
    

    【讨论】:

    • 根据this link,命名无关紧要。尽管如此,我们也尝试为两者使用相同的名称,但这并没有解决问题。
    • 正确,我的错误,但是您应该发布更多的 logcat/stacktrace。那里应该有一个“由”提供更多信息。
    猜你喜欢
    • 2017-09-09
    • 1970-01-01
    • 2016-09-12
    • 2015-02-03
    • 2023-03-23
    • 1970-01-01
    • 2012-09-05
    • 2016-09-14
    相关资源
    最近更新 更多