我正在尝试在我的 LWJGL 游戏中实现 2D 文本渲染,并且到处搜索可行的解决方案,但总是遇到同样的错误。我目前正在尝试关注 this tutorial .这是错误:
Exception in thread "main" java.lang.IllegalStateException: Function is not supported
at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58)
at org.lwjgl.opengl.GL11.glColor4f(GL11.java:893)
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glColor4f(ImmediateModeOGLRenderer.java:124)
at org.newdawn.slick.Color.bind(Color.java:182)
at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:363)
at org.newdawn.slick.TrueTypeFont.drawString(TrueTypeFont.java:355)
at guis.Gui.drawString(Gui.java:23)
at engineTester.MainGameLoop.main(MainGameLoop.java:110)
这是我的 Gui 类:
package guis;
import java.awt.Font;
import org.newdawn.slick.TrueTypeFont;
public class Gui {
private TrueTypeFont font;
private Font awtFont;
public Gui() {
this.awtFont = new Font("Times New Roman", Font.BOLD, 24);
this.font = new TrueTypeFont(awtFont, false);
}
public void drawString(int x, int y, String text) {
font.drawString(x, y, text);
}
}
为什么会出现这个错误?
编辑:关于另一个问题的答案:https://stackoverflow.com/a/26319508/5838494我已经这样做了,但它不起作用。
最佳答案
您需要将 opengl 版本设置为低于 3.0,因为 TrueTypeFont 使用的功能已在 3.x 中删除。 或者你可以看看 opengl 3.x/4.x Opengl3.3 如果您不必支持旧的 opengl 版本。
关于java - 不支持 TrueTypeFont.drawString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841717/