首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LWJGL在屏幕上写入文本

问使用LWJGL在屏幕上写入文本
EN

Stack Overflow用户
提问于 2013-10-04 21:44:45
回答 2查看 11.6K关注 0票数 7

我想为我的游戏在屏幕上写文本,比如fps,随机的项目和东西的文本。我该怎么写那段文字呢?

没有基本的Game类是可能的吗?没有像这样的命令吗?g.drawString("Hello World", 100, 100);

EN

回答 2

Stack Overflow用户

发布于 2013-10-05 00:42:54

更新:这个答案现在已经过时了,在最新版本的LWJGL中根本不起作用。在我完全更新此答案之前,我建议您查看此处:https://jvm-gaming.org/t/lwjgl-stb-bindings/54537

您可以使用Slick-util库中的TrueType字体特性。

使用普通字体很简单,只需像这样创建字体:

代码语言:javascript
复制
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文件中加载字体,那就有点麻烦了:

代码语言:javascript
复制
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后,您可以像这样绘制它:

代码语言:javascript
复制
font.drawString(100, 50, "ABC123", Color.yellow); //x, y, string to draw, color

有关更多信息,您可以查看TrueTypeFont和java.awt.Font的文档,以及我从中获得大部分代码的Slick-Util tutorial。

票数 5
EN

Stack Overflow用户

发布于 2014-10-18 01:03:28

尝试制作所需大小的BufferedImage。然后获取它的Graphics并绘制一个字符串。然后将其转换为ByteBuffer并在OpenGL中呈现它。

代码语言:javascript
复制
String text = "ABCD";
int s = 256; //Take whatever size suits you.
BufferedImage b = new BufferedImage(s, s, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g = b.createGraphics();
g.drawString(text, 0, 0);

int co = b.getColorModel().getNumComponents();

byte[] data = new byte[co * s * s];
b.getRaster().getDataElements(0, 0, s, s, data);

ByteBuffer pixels = BufferUtils.createByteBuffer(data.length);
pixels.put(data);
pixels.rewind();

现在,pixels包含了绘制所需的图像数据。使用GL11.glTexImage2D()函数绘制字节缓冲区。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19182843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档