Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用slick2d/opengl显示为实心矩形的字体_Java_Opengl_Slick2d - Fatal编程技术网

Java 使用slick2d/opengl显示为实心矩形的字体

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

学习3d java编程,我构建了一个基于块的3d世界地图(minecraft克隆课程)。我加载了纹理以正确渲染块边

我试图在屏幕上显示调试文本(我在2d游戏中做得很好)。但是,文本会使用块的纹理显示,或者显示为完全黑色-无文本

我尝试了十几种防止使用纹理的方法,但都没有解决上述问题

在绘制文本之前使用:

    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)
before
arialPlain.drawString(…)
。至于绑定适当的纹理以使此操作正常工作,Slick的
TrueTypeFont
类应该可以做到这一点-看看实现,它完成了绘制文本所需的所有操作,除了启用
GL\u texture\u 2D
。也尝试过了。系统已启用GL_TEXTURE_2D以正确渲染块的侧面。关掉它,世界就会变白。字体仍显示为黑色正方形。