首先,我在互联网上找不到 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/