OpenGL实现3D魔方游戏源代码
Posted lihei12345
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL实现3D魔方游戏源代码相关的知识,希望对你有一定的参考价值。
【转】http://blog.csdn.net/hackbuteer1/article/details/6679557
首先这个程序是建立的是Windows应用程序,建立控制台程序是不能运行的,另外,项目——项目属性——配置属性——常规-----使用多字节字符集,这样编译才能够通过的,否则如果选择使用 Unicode 字符集,编译会有错误提示:error C2440: “初始化”: 无法从“const char [8]”转换为“LPCTSTR”,另外,链接器----输入----附加依赖项要加入:“opengl32.lib glu32.lib”的lib库。。
cubemanage.h文件为:
[cpp] view plain copy- #ifndef CUBEMANAGE_H
- #define CUBEMANAGE_H
- #include <windows.h>
- #include <gl/gl.h>
- #include <gl/glu.h>
- #include <math.h>
- #include "wcgcube.h"
- #define CUBE_SIZE 3
- #define ORIENTX 0
- #define ORIENTY 0
- #define ORIENTZ 0
- class CubeManage
- public:
- CubeManage();
- ~CubeManage();
- void turn(int rotateType);
- void turnByXShun(int x);
- void turnByXNi(int x);
- void turnByYShun(int y);
- void turnByYNi(int y);
- void turnByZShun(int z);
- void turnByZNi(int z);
- void output(int scr,int site);
- void output();
- void draw(int rotateType,GLfloat rotate);
- private:
- WcgCube *cubes[CUBE_SIZE][CUBE_SIZE][CUBE_SIZE];
- void goStep(int *leftLeg,int *rightLeg,int *goDirection,int step,int leftEdge,int rightEdge);
- ;
- #endif
wcgcube.h文件为:
[cpp] view plain copy- #ifndef WCGCUBE_H
- #define WCGCUBE_H
- #include <windows.h>
- #include <gl/gl.h>
- #include <gl/glu.h>
- #include <math.h>
- #include "iostream"
- using namespace std;
- #define X 1
- #define Y 2
- #define Z 3
- class WcgCube
- public:
- WcgCube();
- ~WcgCube();
- void turnByXShun(int x);
- void turnByXNi(int x);
- void turnByYShun(int y);
- void turnByYNi(int y);
- void turnByZShun(int z);
- void turnByZNi(int z);
- void output(int sign);
- void output();
- void draw(GLfloat x0,GLfloat y0,GLfloat z0);
- private:
- int direct[6];
- GLfloat sideColor[6][3];
- void turnByX(int x,int sign);
- void turnByY(int y,int sign);
- void turnByZ(int z,int sign);
- ;
- #endif
CubeGame.cpp文件为:
[cpp] view plain copy- #include <windows.h>
- #include <winuser.h>
- #include <gl/gl.h>
- #include <gl/glu.h>
- #include <math.h>
- #include "iostream"
- using namespace std;
- #include "cubemanage.h"
- #include "wcgcube.h"
- static GLfloat PI=3.1415f;
- // Rotation amounts
- static GLfloat xRot = 0.0f;
- static GLfloat yRot = 0.0f;
- static GLfloat rotate=0.0f;
- static int rotateType=0;
- static int rotateOK=0;
- static int rotateRate=100;
- static GLfloat rotateStep=5*PI/180;
- DirectX11--实现一个3D魔方