Обновление: этот ответ устарел и вообще не работает с последними версиями LWJGL. Пока я не обновлять этот ответ полностью, я рекомендую вам посмотреть здесь: http://www.java-gaming.org/topics/lwjgl-stb-bindings/36153/view.html
Вы можете использовать TrueType шрифты особенность в Slick-util библиотеке.
Используя общий шрифт легко, просто создать шрифт, как это:
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 Я получил большую часть этого кода.
LWJGL - действительно довольно тонкая оболочка вокруг OpenGL - если вы хотите сделать что-то подобное проще, я бы предложил что-то вроде JMonkey, которое предоставляет API-интерфейс scenegraph. – berry120
Вы говорите, что его лучший переход к движку игры, если я хочу написать текст? – Israelg99
Вы говорите, что ищете простой метод типа drawString(), который подразумевает, что вы хотите простоты - JMonkey упростит в этом отношении (и многие другие). – berry120