java - lwjgl 和 slick-util 渲染文本

标签 java opengl graphics lwjgl slick2d

首先,我在互联网上找不到 Slick2d.jar 文件,而且我的项目不一定总是 2d,所以我更喜欢使用 slick-util,因为 lwjgl 网站上推荐使用 slick-util 。此外,我知道 TrueTypeFont 在 slick2d 中已被贬值,但这是在 slick-util 中绘制文本的唯一方法

所以我的代码有以下几行:

import java.awt.Font;
import org.newdawn.slick.TrueTypeFont;
import org.newdawn.slick.Color;

...

Font awtFont = new Font("Times New Roman", Font.ITALIC, 24);
font = new TrueTypeFont(awtFont, antiAlias);

...

font.drawString(dim.width/4+10,0, Income, Color.yellow)

...

因为我得到了一个大的黄色 block ,所以我不知道如何修复它。 GL_TEXTURE_2D 已经启用,我还执行了其他人提到的作为解决方案的所有混合调用。

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

最佳答案

迟到的答案,但我之前搜索 TrueTypeFont 解决方案时找不到任何东西。

对我来说,让我困惑的是(并制作 block 而不是文本)是由于我的程序中的各种其他原因调用/绘制前缓冲区和后缓冲区。

GL11.glDrawBuffer(GL11.GL_FRONT_AND_BACK);
drawOtherStuff();

无论出于何种原因,如果我仅调用/绘制后缓冲区(然后在再次绘制其他内容之前返回到前部和后部),drawString() 显示正常。

GL11.glDrawBuffer(GL11.GL_BACK);
font.drawString(100, 50, "THE LIGHTWEIGHT JAVA GAMES LIBRARY", Color.yellow);

不知道为什么它会起作用。也不确定这是否是我的问题所特有的,但希望它可以作为其他人的临时解决方案。

关于java - lwjgl 和 slick-util 渲染文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228513/

相关文章:

c++ - 获取旋转顶点的当前顶点位置

graphics - 使用graphics-draw-line定义过程

c# - 如何在 Unity 中屏蔽自定义 UI 图形?

java - Android 如何只为半屏应用相机效果?

java - 无法向消息中心发布消息

c++ - 如何测量计算着色器的时间性能?

Java - 围绕圆绘制正方形

java - 使用 @Query 调用存储过程会导致异常 : wrong number or types of arguments in call to ProcedureName

Java - 从字符串中解析日期

opengl - 如何将投影点转换为屏幕坐标(视口(viewport)矩阵)