Cập nhật: câu trả lời này hiện đã lỗi thời và hoàn toàn không hoạt động với các phiên bản LWJGL mới nhất. Cho đến khi tôi cập nhật câu trả lời này hoàn toàn, tôi khuyên bạn nên tìm kiếm ở đây: http://www.java-gaming.org/topics/lwjgl-stb-bindings/36153/view.html
Bạn có thể sử dụng các phông chữ TrueType tính năng trong thư viện Slick-util.
Sử dụng một phông chữ thông thường được dễ dàng, chỉ cần tạo phông chữ như thế này:
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
Nếu bạn muốn tải font từ một tập tin .ttf
, đó là một chút khó khăn hơn:
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();
}
Sau khi bạn đã tạo thành công một TrueTypeFont
, bạn có thể vẽ nó như thế này:
font.drawString(100, 50, "ABC123", Color.yellow); //x, y, string to draw, color
Để biết thêm thông tin, bạn có thể xem tài liệu cho TrueTypeFont
và java.awt.Font
và Slick-Util tutorial Tôi nhận được hầu hết mã này từ.
LWJGL thực sự là một trình bao bọc mỏng xung quanh OpenGL - nếu bạn muốn làm những việc như thế này đơn giản hơn, tôi muốn đề xuất một cái gì đó giống như JMonkey cung cấp API scenegraph. – berry120
bạn đang nói rằng nó di chuyển tốt hơn đến một công cụ trò chơi nếu tôi muốn viết văn bản? – Israelg99
Bạn nói rằng bạn đang tìm kiếm một phương thức 'drawString()' đơn giản, có nghĩa là bạn muốn đơn giản - JMonkey sẽ làm cho mọi việc đơn giản hơn về mặt này (và nhiều thứ khác). – berry120