有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaGDX。文件夹。内部()未加载我的。fnt文件

因此,我正在阅读packtpub关于libgdx的教程,以了解该框架的工作原理。不管怎样,到目前为止,我还没有遇到任何问题。我正在尝试加载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。糟糕的逻辑。gdx。乌提尔斯。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

公共线宽=80基准=26刻度EW=128刻度=64页=1压缩=0字母CHNL=1红色CHNL=0绿色CHNL=0蓝色CHNL=0 页面id=0 file=“”

我花了一些时间研究其他类似的答案,但我无法让它发挥作用。如果有人知道如何帮助,那就太好了,请随时问我任何有助于你找到正确答案的问题,或者如果你知道一个解决我问题的问题/答案,请让我知道。此外,如果有兴趣,我正在使用的书是学习LibGDX游戏开发第二版,我在第5节

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    你的。如果没有要渲染的图像文件,fnt文件将无法工作。您粘贴的内容被这里的格式弄乱了,但是看起来您的页面中有file=""。fnt文件,这将导致您得到的错误。我不知道你从哪儿弄来的。fnt文件,但它应该同时具有。fnt和(通常)a。png部分,带有。fnt引用了。在前面的文件部分中使用png,例如file="vcr.png",如果您在同一文件夹中有该png。使用文件夹可能很棘手。fnt,我建议保留。fnt和。png位于libGDX资产目录底部的同一文件夹中(通常资产/位于Android项目中,如果没有Android项目,则位于core中)。如果你想尝试一些其他fnt文件,看看它们是否更适合你的视觉效果(或者只是工作),我会保留一些用于分发in this folder of a GitHub repo。你一定要确保两者都匹配。fnt和。png,无论文件来自哪里

    另外,从同一个文件创建3个不同的BitmapFont文件。fnt不会改变它使用的图像,不过如果以后放大位图字体,可以使图像中的每个像素在特定字体下显示得更大。使用Hiero, at the bottom of this page之类的工具生成多个大小的BitmapFont是很常见的,它允许更大字体的细节更高,或者随着您对libGDX更熟悉,可以使用FreeTypeFontGenerator在运行时生成大小正确的字体。就我个人而言,我使用距离场字体来平滑缩放(这不是一种容易上手和运行的技术,但在文本密集型游戏中看起来很不错),或者我故意使用复古外观,并以整数增量缩放字体(两倍大小、三倍大小等,但不是150%大小,因为这会导致像素字体的缩放效果不好)