键盘输入后,以前的图像不会消失

时间:2018-05-13 13:31:42

标签: graphics

我正在处理向上,向下,向左,向右,向前和向后移动的键盘功能。它们似乎工作正常,但问题是之前的对象图像仍然出现。就像在图像遍布整个屏幕后一样。

以下是我的代码。

这是变量的初始设置:

double x1 = 0.0f;
double yi = 1.0f;
double z1 = 3.0f;

double lx1 = 0.0f;
double ly1 = 0.0f;
double lz1 = -1.0f;

double angle = 0.0f;

键盘功能

switch (key) {

case 033: 
    glutLeaveMainLoop();
    break;
case 'd':
    angle -= 0.01f;
    lx1 = sin(angle);
    lz1 = -cos(angle);
    //setCamera();
    break;
case 'a':
    angle += 0.01f;
    lx1 = sin(angle);
    lz1 = -cos(angle);
    //setCamera();
    break;
case 's':
    angle += 0.01f;
    ly1 = angle;
    //setCamera();
    break;
case 'w':
    angle -= 0.01f;
    ly1 = angle;
    //setCamera();
    break;
case '2' :
    x1= (-1) * lx1 * 0.1 + x1;
    z1 = (-1) * lz1 * 0.1 + z1;
    //setCamera();
    break;
case '1':
    x1 = (1) * lx1 * 0.1 + x1;
    z1 = (1) * lz1 * 0.1 + z1;
    //setCamera();
    break;
}

glutPostRedisplay(); }

void setCamera() {
    glLoadIdentity();
    gluLookAt(x1, yi, z1, x1 + lx1, yi + ly1, z1 + lz1, 0, 1, 0); 
}

setCamera()函数中还有display()个函数。我对此的看法是每次输入输入时,插入gluLookAt()函数的变量都会更新,并会按glutPostRedisplay()绘制新图像,而前图像仍然存在。有什么我忽略的吗?

enter image description here

0 个答案:

没有答案