-
大小: 116KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-25
- 語言: 其他
- 標簽: OpenGLC/C++??
資源簡介
可以實現(xiàn)漫游內(nèi)置的迷宮場景,并且可以通過鼠標進行視角的控制,帶有碰撞檢測功能。
本實驗基于VS2013

代碼片段和文件信息
#define?FREEGLUT_STATIC
#define?GLUT_DISABLE_ATEXIT_HACK
#include?
#include?
#include?
#include?
#include?
using?namespace?std;
#ifdef?_DEBUG
#pragma?comment(lib?“freeglut_staticd.lib“)
#else
#pragma?comment(lib?“freeglut_static.lib“)
#endif
#define?WIDTH?500
#define?HEIGHT?500
GLfloat?eyex?=?3?eyey?=?2?eyez?=?28;
GLfloat?centerx?=?3?centery?=?2?centerz?=?0;
GLfloat?upx?=?0?upy?=?1?upz?=?0;
void?DrawMaze();
GLfloat?vectorx?=?centerx?-?eyex;
GLfloat?vectory?=?centery?-?eyey;
GLfloat?vectorz?=?centerz?-?eyez;
GLdouble?vectorlen?=?sqrt(vectorx*vectorx?+?vectory*vectory?+?vectorz*vectorz);
GLfloat?WalkPace?=?0.2;
GLfloat?OFFSET?=?0.5;
static?float?Theta?=?0.02;//每次旋轉5度
GLdouble?cosTheta?=?cos(Theta);
GLdouble?sinTheta?=?sin(Theta);
const?int?block_size?=?2;
const?int?map_size?=?7;
int?map[49]?=?{?\
1?1?1?1?1?1?1?\
1?0?0?0?0?0?1?\
1?0?0?0?0?0?1?\
1?1?1?1?0?0?1?\
1?0?0?0?0?0?1?\
1?0?0?0?0?0?1?\
1?0?0?1?1?1?1??\
};
void?keyboard(unsigned?char?key?int?x?int?y)?{
GLfloat?tmpCenterx?=?centerx?tmpCentery?=?centery?tmpCenterz?=?centerz;
GLfloat?tmpEyex?=?eyex?tmpEyey?=?eyey?tmpEyez?=?eyez;
switch?(key)????{
case?‘w‘:case?‘W‘:?{
centerx?+=?vectorx*WalkPace?/?vectorlen;
centerz?+=?vectorz*WalkPace?/?vectorlen;
eyex?=?centerx?-?vectorx;
eyez?=?centerz?-?vectorz;
if?((eyex>-1?&&?eyex?-1?&&?eyez //roll?back!
centerx?=?tmpCenterx;?centerz?=?tmpCenterz;
eyez?=?tmpEyez;?eyex?=?tmpEyex;
}
break;
}
case?‘s‘:?case?‘S‘:?{
centerx?-=?vectorx*WalkPace?/?vectorlen;
centerz?-=?vectorz*WalkPace?/?vectorlen;
eyex?=?centerx?-?vectorx;
eyez?=?centerz?-?vectorz;
if?((eyex>-1?&&?eyex?-1?&&?eyez //roll?back!
centerx?=?tmpCenterx;?centerz?=?tmpCenterz;
eyez?=?tmpEyez;?eyex?=?tmpEyex;
}
break;
}
case?‘d‘:?case?‘D‘:?{
GLfloat?tx?tz;
tx?=?-vectorz;?tz?=?vectorx;
centerx?+=?tx*WalkPace?/?vectorlen;
centerz?+=?tz*?WalkPace?/?vectorlen;
eyex?=?centerx?-?vectorx;
eyez?=?centerz?-?vectorz;
if?((eyex>-1?&&?eyex?-1?&&?eyez //roll?back!
centerx?=?tmpCenterx;?centerz?=?tmpCenterz;
eyez?=?tmpEyez;?eyex?=?tmpEyex;
}
break;
}
case?‘a(chǎn)‘:case?‘A‘:{
GLfloat?tx?tz;
tx?=?vectorz;?tz?=?-vectorx;
centerx?+=?tx*WalkPace?/?vectorlen;
centerz?+=?tz*?WalkPace?/?vectorlen;
eyex?=?centerx?-?vectorx;
eyez?=?centerz?-?vectorz;
if?((eyex>-1?&&?eyex?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-05-11?11:38??CGRoaming\
?????目錄???????????0??2016-05-11?11:39??CGRoaming\CG\
?????文件????????6873??2016-05-11?11:36??CGRoaming\CG\CG.cpp
?????文件????????4440??2016-05-10?19:28??CGRoaming\CG\CG.vcxproj
?????文件????????1081??2016-05-10?19:28??CGRoaming\CG\CG.vcxproj.filters
?????文件?????????306??2016-04-08?19:52??CGRoaming\CG\CG.vcxproj.user
?????文件?????????952??2016-03-10?16:06??CGRoaming\CG.sln
?????文件???????53760??2016-05-11?11:36??CGRoaming\CG.v12.suo
?????目錄???????????0??2016-05-11?11:37??CGRoaming\Release\
?????文件??????243712??2016-05-11?11:36??CGRoaming\Release\CG.exe
- 上一篇:Verilog的135個經(jīng)典設計.rar
- 下一篇:關鍵詞篩選工具
評論
共有 條評論