问题描述
我用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 (将#修改为@)