Search code examples
javaandroidfontstruetypelibgdx

TrueType Fonts in libGDX


Does anyone know how I can use a TTF font in libGDX? I have looked around and have seen things about StbTrueTypeFont but it doesn't seem to be in the latest release.

EDIT: I found the StbTrueType font stuff, the jar file is located in the extensions directory. I've added it to my project. Now I just need to figure out how to use it. Any examples?


Solution

  • Yes you will definitely need to add the gdx-stb-truetype jars to your project as you stated in your edit. Here is how you will use it, pretty straighforward...

    First you need to declare your BitmapFont and the characters you will use...

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

    Then you need to create the font...

    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);
    

    You can play with the arguments you pass to createBitmapFont() and you will see what they do.

    Then to render the font you would do it as you normally do...

    batch.begin();
    font.draw(batch, "This is some text", 10, 10);
    batch.end();