如何修复我的Slick Unicode字体是否颠倒?

时间:2012-08-03 02:16:26

标签: string fonts lwjgl slick2d

出于某种原因,当我尝试使用Slick的UnicodeFont类打印出一个字符串时,它是颠倒的。

(注意:我也在使用LWJGL,但我不认为它干扰了光滑的尝试。)

初始化代码:

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, Display.getWidth(), 0, Display.getHeight(), 1, -1);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glEnable(GL11.GL_BLEND);

    try {
        normalFont = new UnicodeFont("res/fonts/visitor.ttf", 15, false, false);
        normalFont.addAsciiGlyphs();
        normalFont.addGlyphs(400, 600);
        normalFont.getEffects().add(new ColorEffect());
        normalFont.loadGlyphs();
    } catch (SlickException e) {
        e.printStackTrace();
    }

绘制代码:

    normalFont.drawString(10f, 740f, "HELLO WORLD!");

有谁知道为什么我的字符串被颠倒了?

2 个答案:

答案 0 :(得分:5)

我找到了答案。我需要改变这个:

GL11.glOrtho(0, Display.getWidth(), 0, Display.getHeight(), 1, -1);

对此:

GL11.glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);

答案 1 :(得分:3)

快速了解你的字体无法正常工作的原因(如果你还不知道),glOrtho被称为:

glOrtho(double left, double right, double bottom, double top, double zNear, double zFar)

这就是说,你将底部设置为0,它应该设置为显示器的高度或必要时设置自定义底部,这就是为什么文本面向屏幕顶部或者说是绘制的原因上下。