Update: Diese Antwort ist jetzt veraltet und funktioniert überhaupt nicht mit den neuesten Versionen von LWJGL. Bis ich diese Antwort vollständig aktualisieren, empfehle ich, dass Sie hier: http://www.java-gaming.org/topics/lwjgl-stb-bindings/36153/view.html
Sie die Truetype-Schriftarten in der Slick-util Bibliothek verfügen nutzen könnten.
eine gemeinsame Schrift verwenden ist einfach, erstellen Sie einfach die Schriftart wie folgt aus:
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
Wenn Sie die Schrift aus einer .ttf
Datei laden möchten, ist es ein wenig komplizierter:
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();
}
Nachdem Sie erfolgreich eine TrueTypeFont
erstellt haben, können Sie es wie folgt zeichnen:
font.drawString(100, 50, "ABC123", Color.yellow); //x, y, string to draw, color
Weitere Informationen finden Sie in der Dokumentation für TrueTypeFont
und java.awt.Font
, und die Slick-Util tutorial Ich habe die meisten dieser Code aus.
LWJGL ist wirklich eine dünne Hülle um OpenGL - wenn Sie solche Dinge einfacher machen möchten, würde ich etwas wie JMonkey vorschlagen, die eine Scenegraph API bietet. – berry120
sagst du, dass es besser ist, zu einer Spielengine zu wechseln, wenn ich Text schreiben will? – Israelg99
Sie sagen, dass Sie nach einer einfachen Methode 'drawString()' suchen, die Einfachheit bedeutet - JMonkey wird die Dinge in dieser Hinsicht (und vielen anderen) vereinfachen. – berry120