2017-05-21 40 views
0

所以我正在通過libgdx上的packtpub的教程書來了解框架的工作原理。無論如何,直到這一點,我沒有任何問題。我想要加載一個BitmapFont,不管我做什麼,都告訴我它不在那裏。這是代碼;Gdx.files.internal()沒有加載我的.fnt文件

 public AssetFonts(){ 
     //Create 3 Fonts using VCRFONT 
     defaultSmall = new BitmapFont(Gdx.files.internal("images/vcr.fnt"), true); 
     defaultNormal = new BitmapFont(Gdx.files.internal("images/vcr.fnt"), true); 
     defaultBig = new BitmapFont(Gdx.files.internal("images/vcr.fnt"), true); 

我收到此異常錯誤:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Error loading font file: images/vcr.fnt 
at com.badlogic.gdx.graphics.g2d.BitmapFont$BitmapFontData.load(BitmapFont.java:667) 
at com.badlogic.gdx.graphics.g2d.BitmapFont$BitmapFontData.<init>(BitmapFont.java:481) 
at com.badlogic.gdx.graphics.g2d.BitmapFont.<init>(BitmapFont.java:116) 
at com.dijdesign.libgdx.game.util.Assets$AssetFonts.<init>(Assets.java:41) 
at com.dijdesign.libgdx.game.util.Assets.init(Assets.java:79) 
at com.dijdesign.libgdx.game.CanyonBunnyMain.create(CanyonBunnyMain.java:25) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:149) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126) 

造成的:com.badlogic.gdx.utils.GdxRuntimeException:缺少:文件

這是非常令人沮喪,我進去字體文件以及編輯它,我編輯的兩件事只是從信息面刪除= & & page id =這裏的字段是該代碼;

info face="" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 

共同lineHeight是= 80鹼= 26 scaleW = 128 scaleH = 64頁= 1填充= 0 alphaChnl = 1 redChnl = 0 greenChnl = 0 blueChnl = 0 頁ID = 0文件= 「」

我花了一些時間尋找類似於這個的其他答案,但我無法讓它工作。如果有人知道如何提供幫助,那就太好了,隨時問我任何能夠幫助你找到正確答案的東西,或者如果你知道有問題可以解決我的問題,請告訴我。另外,如果有興趣,我正在使用的書是學習LibGDX遊戲開發第二版,我在第5節。

由於提前感謝。

回答

0

您的.fnt文件無法在沒有圖像文件的情況下進行渲染。你粘貼的東西在這裏被格式化搞砸了,但是看起來你在.fnt文件中有file="",這隻會導致你得到的錯誤。我不知道你在哪裏得到這個特定的.fnt文件,但它應該同時具有.fnt和(通常).png部分,而.fnt在前面的文件部分中具有對.png的引用,如file="vcr.png",如果你有相同的文件夾中的PNG。文件夾對於.fnt可能會很棘手,我建議將.fnt和.png保存在libGDX資產目錄底部的相同文件夾中(通常資產/位於Android項目中,如果您不有一個Android項目)。如果你想嘗試一些其他的fnt文件,看看它們是否更適合你的視覺效果(或者只是工作),我保留幾個分佈in this folder of a GitHub repo。無論文件來自哪裏,你都應該確保你有匹配的.fnt和.png。另外,從相同的.fnt創建3個不同的BitmapFont文件不會更改它使用的圖像,但如果稍後再放大該BitmapFont,則可以使圖像中的每個像素顯示爲更大的特定字體。使用像Hiero, at the bottom of this page這樣的工具來生成多個大小的BitmapFont是很常見的,它允許在較大的字體上獲得更高的細節,或者讓您更加熟悉libGDX使用FreeTypeFontGenerator在運行時生成正確大小的字體。就我個人而言,我使用距離場字體來平滑縮放(這不是一個簡單的技術來啓動和運行,但在文本較重的遊戲中看起來不錯),或者我故意去復古外觀和以整數增量縮放字體(雙倍大小,三倍大小等,但不是150%的大小,因爲它會導致令人不快的像素字體縮放)。

+0

另外,既然你說你刪除了'page id = 0',那可能不應該被刪除,因爲它可能是.fnt文件的必要部分,並且可能需要找到正確的圖像字體。我不知道'face'是否可以安全地移除,並且假設它們可以在未驗證它們是無關的情況下被移除並不是一個好主意。 – notostraca

+0

哇!謝謝,我正在使用鞋盒來生成我的。fnts和它搞砸了。我想要使​​用Heiro,但在我的生活中找不到它!感謝您將它與我聯繫起來,我現在就開始工作了! –