2017-10-07 54 views
1

我们正试图在资源管理器中加载一个真正的字体字体在libgdx项目中。我们遵循严格的wiki entry。然而,我们得到的异常LIBGDX资产管理器加载真实字体字体

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并按照说明解决问题。

回答

0
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的文件系统是区分大小写。

+1

谢谢!奇迹般有效 :) – user107641

0
parameter.fontFileName = "basicfont.ttf"; 
game.manager.load("font.ttf", BitmapFont.class, parameter); 

我想你应该对字体在load方法以这种方式使用相同的名称

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

根据[此链接](http://www.codingchronicles.com/libgdx/using-assetmanager-to-store-your-bitmap-fonts-in-libgdx)命名并不重要。从来没有,我们也试图用同样的名字来解决问题。 – user107641

+0

正确,我的错误,但是你应该发布更多的logcat/stacktrace。在那里应该有一个“由...引起”,它提供了更多的信息。 – pleft