用C语言在Dev C++上写一个 迷宫游戏 项目,要用到OpenGL图形库
时间: 2023-12-03 13:44:51 浏览: 76
好的,下面是一个简单的迷宫游戏项目,使用OpenGL图形库。在Dev-C++中创建一个新项目,选择OpenGL模板,然后将以下代码复制并粘贴到main.c文件中,即可运行。
```
#include <windows.h>
#include <GL/glut.h>
#define WIDTH 800
#define HEIGHT 600
float angle = 0.0f;
float x = 0.0f, y = 0.0f, z = 0.0f;
void init() {
glClearColor(0.0, 0.0, 0.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (GLfloat)WIDTH / (GLfloat)HEIGHT, 0.1, 100.0);
glMatrixMode(GL_MODELVIEW);
}
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(x, y, z);
glRotatef(angle, 0.0, 1.0, 0.0);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_QUADS);
glVertex3f(-1.0, -1.0, 0.0);
glVertex3f(1.0, -1.0, 0.0);
glVertex3f(1.0, 1.0, 0.0);
glVertex3f(-1.0, 1.0, 0.0);
glEnd();
glutSwapBuffers();
}
void reshape(int w, int h) {
glViewport(0, 0, w, h);
}
void keyboard(unsigned char key, int x, int y) {
switch (key) {
case 'a':
angle -= 5.0f;
break;
case 'd':
angle += 5.0f;
break;
case 'w':
z -= 0.1f;
break;
case 's':
z += 0.1f;
break;
case 'q':
y += 0.1f;
break;
case 'e':
y -= 0.1f;
break;
case 'z':
x -= 0.1f;
break;
case 'c':
x += 0.1f;
break;
}
glutPostRedisplay();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(WIDTH, HEIGHT);
glutCreateWindow("Maze Game");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
init();
glutMainLoop();
return 0;
}
```
这是一个简单的迷宫游戏,使用wasd和鼠标进行移动。```glTranslatef```和```glRotatef```函数用于移动和旋转迷宫。可以根据需要进行修改和扩展。
阅读全文