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
  1. #ifndef CUBEMANAGE_H  
  2. #define CUBEMANAGE_H  
  3.   
  4. #include <windows.h>  
  5. #include <gl/gl.h>  
  6. #include <gl/glu.h>  
  7. #include <math.h>  
  8.   
  9. #include "wcgcube.h"  
  10.   
  11. #define CUBE_SIZE  3  
  12. #define ORIENTX 0  
  13. #define ORIENTY 0  
  14. #define ORIENTZ 0  
  15.   
  16. class CubeManage   
  17. public:   
  18.     CubeManage();  
  19.     ~CubeManage();  
  20.       
  21.     void turn(int rotateType);  
  22.     void turnByXShun(int x);  
  23.     void turnByXNi(int x);  
  24.     void turnByYShun(int y);  
  25.     void turnByYNi(int y);  
  26.     void turnByZShun(int z);  
  27.     void turnByZNi(int z);  
  28.     void output(int scr,int site);  
  29.     void output();  
  30.     void draw(int rotateType,GLfloat rotate);  
  31.       
  32. private:  
  33.     WcgCube *cubes[CUBE_SIZE][CUBE_SIZE][CUBE_SIZE];  
  34.       
  35.     void goStep(int *leftLeg,int *rightLeg,int *goDirection,int step,int leftEdge,int rightEdge);  
  36. ;  
  37.   
  38. #endif  

wcgcube.h文件为:

[cpp]  view plain copy
  1. #ifndef WCGCUBE_H  
  2. #define WCGCUBE_H  
  3.   
  4. #include <windows.h>  
  5. #include <gl/gl.h>  
  6. #include <gl/glu.h>  
  7. #include <math.h>  
  8.   
  9. #include "iostream"  
  10. using namespace std;  
  11.   
  12. #define X 1  
  13. #define Y 2  
  14. #define Z 3  
  15.   
  16. class WcgCube   
  17. public:  
  18.     WcgCube();    
  19.     ~WcgCube();  
  20.       
  21.     void turnByXShun(int x);  
  22.     void turnByXNi(int x);  
  23.     void turnByYShun(int y);  
  24.     void turnByYNi(int y);  
  25.     void turnByZShun(int z);  
  26.     void turnByZNi(int z);  
  27.     void output(int sign);  
  28.     void output();  
  29.     void draw(GLfloat x0,GLfloat y0,GLfloat z0);  
  30.       
  31. private:  
  32.     int direct[6];  
  33.     GLfloat sideColor[6][3];  
  34.       
  35.     void turnByX(int x,int sign);  
  36.     void turnByY(int y,int sign);  
  37.     void turnByZ(int z,int sign);  
  38. ;  
  39.   
  40. #endif  

CubeGame.cpp文件为:

[cpp]  view plain copy
  1. #include <windows.h>  
  2. #include <winuser.h>  
  3. #include <gl/gl.h>  
  4. #include <gl/glu.h>  
  5. #include <math.h>  
  6.   
  7. #include "iostream"  
  8. using namespace std;  
  9.   
  10. #include "cubemanage.h"  
  11. #include "wcgcube.h"  
  12.   
  13. static GLfloat PI=3.1415f;  
  14. // Rotation amounts  
  15. static GLfloat xRot = 0.0f;  
  16. static GLfloat yRot = 0.0f;  
  17.   
  18. static GLfloat rotate=0.0f;  
  19. static int rotateType=0;  
  20. static int rotateOK=0;  
  21. static int rotateRate=100;  
  22. static GLfloat rotateStep=5*PI/180;  
  23. DirectX11--实现一个3D魔方

    OpenGL ES绘制魔方

    魔方教学网站中的3D动画是怎么弄得。

    HTML+CSS+JS实现 ❤️3D旋转魔方图片相册特效❤️

    3D魔方的思路与实现

    canvas实现3D魔方