Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用GLUT移动3D形状?_C++_Opengl_Glut - Fatal编程技术网

C++ 用GLUT移动3D形状?

C++ 用GLUT移动3D形状?,c++,opengl,glut,C++,Opengl,Glut,我正在做一个蛇游戏 这是我的蛇: void snake() { glPushMatrix(); glColor3f(1,1,1); glTranslatef(t,cy,cz); glutSolidCube(0.9); glPopMatrix(); } 当我按下一个键时,我试图让蛇继续朝一个方向移动。 我尝试这样做: void keyboard(unsigned char key, int x, int y) { if(key=='z'){cz-=1;} if(

我正在做一个蛇游戏

这是我的蛇:

void snake()
{
 glPushMatrix();
 glColor3f(1,1,1);
 glTranslatef(t,cy,cz);
 glutSolidCube(0.9);
 glPopMatrix();
}
当我按下一个键时,我试图让蛇继续朝一个方向移动。 我尝试这样做:

void keyboard(unsigned char key, int x, int y)
{   

    if(key=='z'){cz-=1;}
    if(key=='s'){cz+=1;}

    if(key=='q'){cx-=1;}
    if(key=='d'){cx+=1;}

    if(key=='a'){cy-=1;}
    if(key=='w'){cy+=1;}

    glutPostRedisplay();
}
它工作得很好,但我希望它继续移动,直到我换了钥匙

我不知道该怎么做


有什么帮助吗?

提示:您希望以某种方式存储这些
c{x,y,z}{+,-}=1
来表示您的蛇的速度,从关键事件中更新它们,然后使用它们的值。为此,您可以使用什么?本文将帮助您:您需要创建一个转换matrix@Asesh我很确定OP已经实现了显示,但需要关于数据存储的帮助。@Quentin我真的不明白你的意思,请你解释一下。@Asesh是的,我已经实现了显示。提示:你想以某种方式存储这些
c吗{x,y,z}{+,-}=1
表示snake的速度,从关键事件中更新它们,然后使用它们的值。为此,您可以使用什么?本文将帮助您:您需要创建一个转换matrix@Asesh我很确定OP已经实现了显示,但需要数据存储方面的帮助。@Quentin我真的不明白你的意思,可以吗请你再解释一下。@Asesh是的,我已经完成了展示。