Gdx.files.internal()没有加载我的.fnt文件

时间:2017-05-21 01:31:45

标签: java file fonts libgdx loading

因此,我正在编写libgdx上的packtpub教程书,以了解该框架的工作原理。无论如何,到目前为止我没有遇到任何问题。我试图让BitmapFont加载,无论我做什么它告诉我它不存在。这是代码;

     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:缺少:文件

这非常令人沮丧,我也去了字体文件进行编辑,我编辑的两件事只是从信息中删除了face =&amp;&amp; page id = fields here is code;

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

common lineHeight = 80 base = 26 scaleW = 128 scaleH = 64 pages = 1 packed = 0 alphaChnl = 1 redChnl = 0 greenChnl = 0 blueChnl = 0 page id = 0 file =&#34;&#34;

我花了一些时间来查看与此类似的其他答案,但我无法让它发挥作用。如果有人知道如何帮助那会很棒,请随时向我询问任何有助于指导您正确答案的内容,或者如果您知道问题/答案可以解决我的问题,请告诉我。如果对我正在使用的书感兴趣的是学习LibGDX游戏开发第2版,我在第5部分。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的.fnt文件无法在没有要渲染的图像文件的情况下工作。你粘贴的内容在这里被格式化了,但看起来你在.fnt文件中有file="",这只会导致你得到的错误。我不知道你在哪里得到这个特殊的.fnt文件,但是它应该有一个.fnt和(通常)一个.png部分,.fnt在前面的文件中引用了.png部分,例如file="vcr.png",如果您在同一文件夹中有该png。使用.fnt文件夹可能很棘手,我建议将.fnt和.png保存在libGDX资源目录底部的同一文件夹中(通常是资产/在Android项目中,或者如果你不在#39;有一个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%大小,因为它会导致像素字体的令人不快的缩放)。