1

何らかの理由で、Slick の UnicodeFont クラスを使用して文字列を出力しようとすると、上下が逆になります。

(注:私もLWJGLを使用していますが、slickがやろうとしていることを妨げているとは思いません。)

初期化されたコード:

    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!");

私の弦が逆さまに描かれている理由を誰か知っていますか?

4

2 に答える 2

5

私は答えを見つけました。これを変更する必要がありました:

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

これに:

GL11.glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);
于 2012-08-03T17:14:50.633 に答える
3

フォントが機能しない理由を少し理解すると (まだわからない場合)、glOrtho は次のように呼び出されます。

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

そうは言っても、必要に応じてディスプレイの高さまたはカスタムの下部に設定する必要がある下部を 0 に設定しました。これが、テキストが画面の上部を向いているか、むしろ上向きに描画されている理由です。下。

于 2012-12-04T14:33:46.007 に答える