Search code examples
stringlwjglslick2d

Drawing strings with slick2d and TTF


I've been experimenting with String printing in LWJGL using slickutils. Generally when browsing the web I found two approaches to this. First being bitmaps where you have an entire alphabet and print each letter as a Texture, the other being using TrueTypeFonts and the truetypefont.drawString(20f,20f,"LWJGL String Test", Color.green) method. However, most of the literature I found was a few years old. What is the right way to do this at the current time?

At the moment I'm using the TrueTypeFont method, however my result confuses me. enter image description here

//It doesn't matter which Font I try to load, I get the same green bar. 
//I think it has something to do with not finding the Fonts?
Font awtFont = new Font("Times New Roman", Font.BOLD, 24); 
TrueTypeFont font = new TrueTypeFont(awtFont, true);
font.drawString(20f, 20f, "LWJGL TEST STRING",Color.green);

I've also copied an example from the internet and get the same result(just a bar). Tried googling but couldn't find any fixes.


Solution

  • TrueTypeFont is deprecated. Use UnicodeFont instead.

    Check this:

    // Create a font with the size of 20, and not bold or italic.
    Unicode font = new UnicodeFont("res/font.ttf", 20, false, false);
    
    font.addAsciiGlyphs();
    font.getEffects().add(new ColorEffect());
    font.loadGlyphs();
    
    g.setFont(font);
    g.drawString("Shit example", 100, 100);