微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

清除 opengl jogl 中的特定项目

如何解决清除 opengl jogl 中的特定项目

我用opengl java创建了一个简单的游戏,我可以向目标投掷箭头,我使用translate来投掷箭头,所以当它到达目标时它会消失,因为使用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,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);
            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,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,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,-10);
        gl.glVertex2i(140,5);
        gl.glEnd();

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。