0

左クリックするたびにプログラムに四角形を作成させたいです。私はlwjglを初めて使用し、ifステートメントを使用しようとしています

    if(lClick == true){
drawQuad();
}

今、(デバッグから) if ステートメントが機能することがわかっているので、エラーは drawQuad() 変数にあるはずです。

これが私の drawQuad です:

public static void drawQuad(){
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity(); // Resets any previous projection matrices
    glOrtho(0, 640, 480, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);

    //System.out.println("drawQuad Is Being Used");

glBegin(GL_QUADS);
        glVertex2i(c1, c2);
        glVertex2i(c1, c4);
        glVertex2i(c2, c1);
        glVertex2i(c2, c3);
glEnd();

}

私のc1、c2、c3、およびc4整数は

        int c1 = Mouse.getX() + 25;
        int c2 = Mouse.getX() - 25;
        int c3 = Mouse.getY() + 25;
        int c4 = Mouse.getY() - 25;

これらの整数はすべて

while(!Display.isCloseRequested()){}
4

4 に答える 4

0

OpenGL では、フレームごとにシーン全体を再描画する必要があります。したがって、マウスがクリックされたときに四角形を一度描画する代わりに、代わりにすべての四角形の位置を保存する必要があります (おそらく ArrayList に?)。次に、draw/render関数が呼び出されるたびに、配置されたすべてのクワッドを描画できます。

ちなみに、従来の OpenGL ではなく、OpenGL 3+ を学習することをお勧めします。

于 2013-07-04T22:18:16.687 に答える