0

我用opengl java创建了一个简单的游戏,我可以向目标投掷箭头,我使用翻译来投掷箭头,所以当它到达目标时它会消失,因为使用gl.glClear(GL2.GL_COLOR_BUFFER_BIT) 但我不想消失,如果我删除它gl.glClear(GL2.GL_COLOR_BUFFER_BIT)然后游戏坏了,因为当我在扔之前旋转箭头时,每个位置都会被着色..

那是我的代码请帮助我

   float x = 0f;
    boolean throwArr = false;
    int arrows = 0;
    double throwArrowTime = 0;
DISPLAY METHOD 

gl.glPushMatrix();
        gl.glTranslated(-140, 50, 0)

        gl.glRotated(x, 0, 0, 1)

        gl.glTranslated(140, -50, 0);

        gl.glColor3f(1f, 1f, 1f);
        gl.glLineWidth(3);
        if (throwArr) {
            gl.glTranslated(throwArrowTime, 1, 1);
            gl.glColor3i(0, 0, 0);
            throwArrowTime += 1.5;
        }
        gl.glClear(GL2.GL_COLOR_BUFFER_BIT);
        gl.glBegin(GL.GL_LINE_LOOP);
        gl.glVertex2i(-240, 100);
        gl.glVertex2i(-220, 50);
        gl.glVertex2i(-240, 0);
        gl.glEnd();

        gl.glPopMatrix();
        if (arrows <= 3) {
            gl.glBegin(GL.GL_LINES);
            gl.glVertex2i(-250, 50);
            gl.glVertex2i(-185, 50);
            gl.glEnd();
        }

        gl.glColor3f(0.95f, 0.93f, 0.01f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, 65);
        gl.glVertex2i(140, 35);
        gl.glEnd();

        gl.glColor3f(1f, 0f, 0f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, 80);
        gl.glVertex2i(140, 65);
        gl.glEnd();

        gl.glColor3f(1f, 0f, 0f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, 20);
        gl.glVertex2i(140, 35);
        gl.glEnd();

        gl.glColor3f(0.03f, 0.69f, 0.68f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, 5);
        gl.glVertex2i(140, 20);
        gl.glEnd();

        gl.glColor3f(0.03f, 0.69f, 0.68f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, 80);
        gl.glVertex2i(140, 95);
        gl.glEnd();

        gl.glColor3f(0.9f, 0.49f, 0.04f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, 110);
        gl.glVertex2i(140, 95);
        gl.glEnd();

        gl.glColor3f(0.9f, 0.49f, 0.04f);
        gl.glLineWidth(10);
        gl.glBegin(GL.GL_LINES);
        gl.glVertex2i(140, -10);
        gl.glVertex2i(140, 5);
        gl.glEnd();

        if (throwArrowTime >= 325) {
            throwArrowTime = 0;
            throwArr = false;
        }
And Its MOUSE CLICK METHOD
  throwArr = true;
  arrows++;
4

0 回答 0