Java 使用slick2d/opengl显示为实心矩形的字体
学习3d java编程,我构建了一个基于块的3d世界地图(minecraft克隆课程)。我加载了纹理以正确渲染块边 我试图在屏幕上显示调试文本(我在2d游戏中做得很好)。但是,文本会使用块的纹理显示,或者显示为完全黑色-无文本 我尝试了十几种防止使用纹理的方法,但都没有解决上述问题 在绘制文本之前使用:Java 使用slick2d/opengl显示为实心矩形的字体,java,opengl,slick2d,Java,Opengl,Slick2d,学习3d java编程,我构建了一个基于块的3d世界地图(minecraft克隆课程)。我加载了纹理以正确渲染块边 我试图在屏幕上显示调试文本(我在2d游戏中做得很好)。但是,文本会使用块的纹理显示,或者显示为完全黑色-无文本 我尝试了十几种防止使用纹理的方法,但都没有解决上述问题 在绘制文本之前使用: GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glPus
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glPushMatrix();
GL11.glLoadIdentity();
GL11.glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);
//glDisable(GL_TEXTURE_2D);
//GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glPushMatrix();
GL11.glLoadIdentity();
arialPlain.drawString(20, 20, "ON BLOCK:" + strBlock, Color.black);
// Restore the state of the projection mode
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glPopMatrix();
// Restore the state of the model view mode
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glPopMatrix();
GL11.glEnable(GL11.GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
文本始终呈现为黑色(无论我选择了何种字体颜色)矩形,不会显示任何实际的文本字符。调用
glEnable(GL\u TEXTURE\u 2D)
beforearialPlain.drawString(…)
。至于绑定适当的纹理以使此操作正常工作,Slick的TrueTypeFont
类应该可以做到这一点-看看实现,它完成了绘制文本所需的所有操作,除了启用GL\u texture\u 2D
。也尝试过了。系统已启用GL_TEXTURE_2D以正确渲染块的侧面。关掉它,世界就会变白。字体仍显示为黑色正方形。