0

私は 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();
        }

これが結果です

http://i.stack.imgur.com/4Y9fk.png

http://i.stack.imgur.com/SUoOf.png

4

2 に答える 2

0

テキストが描画されると、テキストを描画するために画像がバインドされます。通常、lwjgl/slick は、テキストを描画するときに現在のテクスチャを保存し、後で再バインドすると推測しています。非表示のときにテクスチャを再バインドせず、別のテクスチャをバインドするバグである可能性があると思いますか?

于 2013-11-02T22:16:39.687 に答える
0

コードを注意深く検討した結果、Entity クラスがglBindTexture(GL_TEXTURE_2D, 0);描画中に呼び出され、テキストを描画すると再び有効になることがわかりました。glBindTexture(GL_TEXTURE_2D, 1);エンティティ描画コードの最後に追加すると、問題が修正されました。問題を理解するのに役立つコメントに感謝します。

于 2013-11-05T05:57:30.093 に答える