加载TTF文件时出错-Libgdx [英] Error loading TTF file - Libgdx

查看:143
本文介绍了加载TTF文件时出错-Libgdx的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用LibgdGdx创建了一个android项目,在其中创建了AssetManager类,在其中加载了我需要的所有资产,但是当我运行该项目时,加载ttf文件时出现错误. AssetManager的代码:

I have created a android project with LibgdGdx where i create a AssetManager class, where I load all the assets I need, but when I run the project i have an error when a ttf file is loading. The code of the AssetManager:

 public AssetManager manager;

public AssetsManager(){

    manager = new AssetManager();
    loadAssets();
}


public void loadAssets(){
    loadTtf("assets/Birds.TTF"); 
}

void loadTtf(String path){
    FileHandleResolver resolver = new InternalFileHandleResolver();
    manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
    manager.setLoader(BitmapFont.class, "assets/Birds.TTF", new FreetypeFontLoader(resolver));

    FreetypeFontLoader.FreeTypeFontLoaderParameter font = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
    font.fontFileName = path;
    font.fontParameters.size = 20;
    manager.load(path , BitmapFont.class, font);
}

我尝试通过此代码加载ttf文件

I try to load the ttf file through this code

BitmapFont font = manager.manager.get("assets/Birds.TTF",BitmapFont.class);

我有部分错误:

com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: assets/Birds.TTF (Internal)
                                                               at com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:579)
                                                               at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:380)
                                                               at com.poum.game.Main.render(Main.java:33)
                                                               at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459)
                                                               at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1649)
                                                               at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1354)

正如我所说的,该项目在Android上运行

As i have said, the project is run on Android

谢谢你所做的一切

推荐答案

String path="Birds.TTF";     //can be inside nested folder
String fileName = "Birds.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 = 20;
manager.load(fileName, BitmapFont.class, parms);   // fileName with extension, sameName will use to get from manager

manager.finishLoading();  //or use update() inside render() method

AssetManager

BitmapFont font=manager.get(fileName,BitmapFont.class);

编辑

从您的屏幕截图中,我得到的文件名为Birds.ttf而不是Birds.TTF

From your screenshot, I got your file name Birds.ttf not Birds.TTF

所以改变

String path = "Birds.ttf";
String fileName = "Birds.ttf"

Android文件系统区分大小写.

Android file-system is case sensitive.

桌面模块的运行配置应如下所示:

Run Configuration for desktop module should be like this :

这篇关于加载TTF文件时出错-Libgdx的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆