libGDX中的TrueType字体

Ale*_*yer 37 java fonts android truetype libgdx

有谁知道如何在libGDX中使用TTF字体?我环顾四周,看过有关StbTrueTypeFont的事情,但它似乎没有出现在最新版本中.

编辑:我发现了StbTrueType字体的东西,jar文件位于extensions目录中.我已将它添加到我的项目中.现在我只需要弄清楚如何使用它.任何例子?

DRi*_*FTy 40

是的,您肯定需要按照gdx-stb-truetype编辑中的说明将罐子添加到项目中.以下是你将如何使用它,非常直接...

首先,您需要声明您BitmapFont和您将使用的角色......

BitmapFont font;
public static final String FONT_CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789][_!$%#@|\\/?-+=()*&.;,{}\"´`'<>";
Run Code Online (Sandbox Code Playgroud)

然后你需要创建字体...

font = TrueTypeFontFactory.createBitmapFont(Gdx.files.internal("font.ttf"), FONT_CHARACTERS, 12.5f, 7.5f, 1.0f, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
font.setColor(1f, 0f, 0f, 1f);
Run Code Online (Sandbox Code Playgroud)

你可以玩你传递的参数createBitmapFont(),你会看到他们做了什么.

然后渲染字体,你会像往常一样做...

batch.begin();
font.draw(batch, "This is some text", 10, 10);
batch.end();
Run Code Online (Sandbox Code Playgroud)

  • @uni与任何`BitmapFont`一样,你可以通过在`Label`构造函数中传递`LabelStyle`来应用于`Label`.在`LabelStyle`中,您可以指定一种字体.http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/Label.html (4认同)
  • 如何将这个字体与ui元素一起使用,例如`com.badlogic.gdx.scenes.scene2d.ui.Label`?还是不可能? (3认同)

Tal*_*tle 27

使用gdx-freetype扩展名:

FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile);
BitmapFont font15 = generator.generateData(15);
BitmapFont font22 = generator.generateData(22);
generator.dispose();
Run Code Online (Sandbox Code Playgroud)

"要使用GDX-的FreeType,获取最新的Nightlies版,链接gdx-freetype.jargdx-freetype-natives.jar到桌面的项目,链接gdx-freetype.jar到你的Android项目,以及复制armeabi/libgdx-freetype.soarmeabi-v7a/libgdx-freetype.so文件到您的Android项目的libs/文件夹,就像与libgdx.so文件."

资料来源:http://www.badlogicgames.com/wordpress/? p = 2300

  • 为了帮助澄清,可以在这里下载这些夜魇:http://libgdx.badlogicgames.com/nightlies/dist/extensions/gdx-freetype/ (2认同)

Kév*_*ier 8

经过研究,发现了这种工作方法:

FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("myfont.ttf"));
FreeTypeFontParameter parameter = new FreeTypeFontParameter();
parameter.size = 12; // font size
BitmapFont font12 = generator.generateFont(parameter);
generator.dispose(); // avoid memory leaks, important
Run Code Online (Sandbox Code Playgroud)

如果您在上面尝试过的答案失败,请使用此选项, libGDX Freetype Wiki作为参考.