2017-10-07 53 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