gpt4 book ai didi

java - LibgGdx - 在 AssetManager 中加载 TrueTypeFont

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:40 26 4
gpt4 key购买 nike

我试图在我的 LibGdx AssetManager 中加载我的 .ttf 字体,但我似乎无法正确加载。我尝试了什么:

在我的 AssetManager 类中:

public static void load(){
//...
//Fonts
FileHandleResolver resolver = new InternalFileHandleResolver();
manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
manager.load(fontTest, FreeTypeFontGenerator.class); //fontTest is a ttf-font

然后我尝试在我的屏幕中像这样使用它:

FreeTypeFontGenerator generator = GdxAssetManager.manager.get(GdxAssetManager.fontTest, FreeTypeFontGenerator.class);
params.size = 50;
font = generator.generateFont(params); //set the bitmapfont to the generator with parameters

这给了我很多奇怪的错误。我什至不知道去哪里找故障。有谁知道如何做到这一点?

最佳答案

是的,那是因为它们不是波音装载的。它是 FreeTypeFontGeneratorLoader 的错误或误导性设计。这是使它工作所需的方式:

// set the loaders for the generator and the fonts themselves
FileHandleResolver resolver = new InternalFileHandleResolver();
manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));

// load to fonts via the generator (implicitely done by the FreetypeFontLoader).
// Note: you MUST specify a FreetypeFontGenerator defining the ttf font file name and the size
// of the font to be generated.
FreeTypeFontLoaderParameter size1Params = new FreeTypeFontLoaderParameter();
size1Params.fontFileName = "ls-bold.otf";//name of file on disk
size1Params.fontParameters.size = ((int)((Gdx.graphics.getWidth()*0.10f)));
manager.load("fontWinFail.ttf", BitmapFont.class, size1Params);//BUGGY:We need to append .ttf otherwise wont work...just put any name here and append .ttf MANDATORY(this is the trick)

请看最后一行,您必须将 .ttf 附加到您选择的任何随机名称。这就是诀窍。

现在,你评论你想要的例子是这样的:

BitmapFont                      fontWinFail; 
fontWinFail = manager.get("fontWinFail.ttf", BitmapFont.class);//notice same name used in above segment(NOTE that this is just a name, not the name of the file)
fontWinFail.setColor(Color.BLACK);

//Then on your render() method
fontWinFail.draw(batch, "hello world", Gdx.graphics.getWidth()*0.5f, Gdx.graphics.getHeight()*0.6f);

关于java - LibgGdx - 在 AssetManager 中加载 TrueTypeFont,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32750766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com