更新:这个答案现在已经过时了,并且完全不适用于最新版本的 LWJGL。在我完全更新这个答案之前,我建议你看这里:https://jvm-gaming.org/t/lwjgl-stb-bindings/54537
您可以使用 Slick-util 库中的 TrueType 字体功能。
使用通用字体很容易,只需像这样创建字体:
TrueTypeFont font;
Font awtFont = new Font("Times New Roman", Font.BOLD, 24); //name, style (PLAIN, BOLD, or ITALIC), size
font = new TrueTypeFont(awtFont, false); //base Font, anti-aliasing true/false
如果你想从.ttf 文件中加载字体,那就有点棘手了:
try {
InputStream inputStream = ResourceLoader.getResourceAsStream("myfont.ttf");
Font awtFont = Font.createFont(Font.TRUETYPE_FONT, inputStream);
awtFont = awtFont.deriveFont(24f); // set font size
font = new TrueTypeFont(awtFont, false);
} catch (Exception e) {
e.printStackTrace();
}
成功创建TrueTypeFont后,可以这样绘制:
font.drawString(100, 50, "ABC123", Color.yellow); //x, y, string to draw, color
有关更多信息,您可以查看TrueTypeFont 和java.awt.Font 的文档,以及我从中获得大部分代码的Slick-Util tutorial。