我一直在与LWJGL进行一场比赛并遇到了一个奇怪的问题。每当我决定隐藏文本时,我的纹理似乎都解开了。这是所有被调用的代码
下面是我的Text类中的代码。
public void draw() {
for (TextData textData : textList) {
drawString(textData.getX(), textData.getY(), textData.getText());
}
}
void drawString(int x, int y, String text) {
for (String line : text.split("\n"))
ttf.drawString( x, y += ttf.getHeight(), line);
}
现在主类中的代码
if (Keyboard.isKeyDown(Keyboard.KEY_H)) {
hideText = !hideText;
}
if (!hideText) {
text.draw();
}
这是结果
答案 0 :(得分:0)
当绘制文本时,图像被绑定绘制文本,我猜测通常lwjgl / slick在绘制文本时保存当前纹理,然后重新绑定它。我猜这可能是一个错误,当隐藏它不重新绑定纹理但仍绑定另一个纹理?
答案 1 :(得分:0)
在仔细考虑我的代码后,我发现我的Entity类在绘制时正在调用glBindTexture(GL_TEXTURE_2D, 0);
并且绘制文本再次启用它。在我的实体绘图代码末尾添加glBindTexture(GL_TEXTURE_2D, 1);
修复了问题。感谢帮助我找出问题的评论。