資源簡介
設計一個OpenGL 程序,創建一個三維迷宮,支持替身通過一定交互手段在迷宮中漫游。
基本功能包括:
1、迷宮應當至少包含 10 * 10 個Cell,不能過于簡單,下圖給出一種示例。
2、讀取給定的替身模型,加載到場景中。
3、鍵盤方向鍵控制替身轉向與漫游。
4、有碰撞檢測,替身不應當穿墻。
5、支持切換第一視角和第三視角進行觀察。
6、迷宮場景中的墻、地面等應貼上紋理。
擴展功能包括(至少選擇一個):
1. 同時加入二維輔助地圖,替身在三維迷宮探索的同時,在小地圖中顯示已經探索的區域;
2. 在俯視狀態下,可以通過鼠標點選替身需要到達的目的地,通過尋徑算法,控制替身自
動到達目的地;
3. 迷宮地圖交互編輯功能,例如,可以設計一個二維地圖編輯器,根據用戶的繪制,拉伸
得到三維迷宮場景;
4. 其他相當難度,可以增加迷宮游戲趣味性的功能(需要通過指導老師認可)
完成一份實驗報告,說明你所實現的一個擴展功能。

代碼片段和文件信息
#include?“maze.h“
#define?M_PI?3.14159
extern?float?des1des2;
GLuint?Decal_Texture5Decal_Texture4Decal_Texture3Decal_Texture2Decal_Texture1;
int map[12][12]?={
{111111111111}
{101000000011}
{101011110011}
{101000001011}
{100111101011}?
{101000101011}
{101010101011}
{100010101001}
{111100100101}
{100001100101}
{100000000101}
{111111111111}
};
void?drawMaze(int?model)
{
//繪制地面
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D?Decal_Texture1);
glBegin(GL_QUADS);
glTexCoord2i(01);glVertex3f(-100.0f?0?100.0f);
glTexCoord2i(11);glVertex3f(-100.0f?0?-100.0f);
glTexCoord2i(10);glVertex3f(100.0f?0?-100.0f);
glTexCoord2i(00);glVertex3f(100.0f?0?100.0f);
glEnd();
glDisable(GL_TEXTURE_2D);
if(model==2)
{float?xz;
//繪制網格
glColor3d(100);
glBegin(GL_LINES);
for(x=-100;x<=100;x+=20){
glVertex3f(x?1?-100);
glVertex3f(x?1?100);
}
for(z=-100;z<=100;z+=20){
glVertex3f(-100?1?z);
glVertex3f(100?1?z);
}
glEnd();
}
//繪制障礙物
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D?Decal_Texture2);
glColor3d(111);
int?xz;
for(x=1;x<11;x++)
{
for(z=1;z<11;z++)
{
if(map[x][z]==1)
{
glPushMatrix();
glTranslatef(20.0*x-110.010.0f110.0-20.0*z);
//glutSolidCube(20.0);
glBegin(GL_QUADS);
//面一
glTexCoord2i(00);glVertex3f(-10-1010);
glTexCoord2i(01);glVertex3f(-101010);
glTexCoord2i(11);glVertex3f(101010);
glTexCoord2i(10);glVertex3f(10-1010);
//面二
glTexCoord2i(01);glVertex3f(10-1010);
glTexCoord2i(11);glVertex3f(101010);
glTexCoord2i(10);glVertex3f(1010-10);
glTexCoord2i(00);glVertex3f(10-10-10);
//面三
glTexCoord2i(00);glVertex3f(10-10-10);
glTexCoord2i(01);glVertex3f(1010-10);
glTexCoord2i(11);glVertex3f(-1010-10);
glTexCoord2i(10);glVertex3f(-10-10-10);
//面四
glTexCoord2i(00);glVertex3f(-10-10-10);
glTexCoord2i(01);glVertex3f(-1010-10);
glTexCoord2i(11);glVertex3f(-101010);
glTexCoord2i(10);glVertex3f(-10-1010);
//面五
glTexCoord2i(00);glVertex3f(-101010);
glTexCoord2i(01);glVertex3f(-1010-10);
glTexCoord2i(11);glVertex3f(1010-10);
glTexCoord2i(10);glVertex3f(101010);
//面六
glTexCoord2i(00);glVertex3f(-10-1010);
glTexCoord2i(01);glVertex3f(10-1010);
glTexCoord2i(11);glVertex3f(10-10-10);
glTexCoord2i(10);glVertex3f(-10-10-10);
glEnd();
glPopMatrix();
}
}
}
//繪制終點
glColor3d(111);
glPushMatrix();
glTranslatef(9010-90);
glBindTexture(GL_TEXTURE_2D?Decal_Texture4);
//glutSolidCube(20.0);
glBegin(GL_QUADS);
//面一
glTexCoord2i(11);glVertex3f(-10-1010);
glTexCoord2i(10);glVer
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2544??2011-05-11?02:47??lab\data\001.tga
?????文件????1000044??2011-05-11?02:21??lab\data\01.tga
?????文件????1440044??2011-05-11?01:23??lab\data\brick.tga
?????文件?????196652??2005-10-22?23:34??lab\data\GenericMech.tga
?????文件?????320236??2005-09-23?12:14??lab\data\knight.md2
?????文件???????3644??2011-05-11?02:05??lab\data\littlebrick.tga
?????文件?????261308??1998-07-02?17:54??lab\data\tris.md2
?????文件?????247740??2005-10-21?10:58??lab\data\WalkMech.md2
?????文件?????262188??2011-05-11?02:03??lab\data\war3mapmap.tga
?????文件???????2832??2011-11-14?12:53??lab\ReadMe.txt
?????文件???????6051??1999-02-23?18:46??lab\test\anorms.h
?????文件??????19896??2011-05-14?17:06??lab\test\Debug\maze.obj
?????文件??????40391??2011-05-10?21:44??lab\test\Debug\Md2.obj
?????文件?????622635??2011-05-15?22:39??lab\test\Debug\test.exe
?????文件?????889992??2011-05-15?22:39??lab\test\Debug\test.ilk
?????文件????2271988??2011-05-15?15:09??lab\test\Debug\test.pch
?????文件????1418240??2011-05-15?15:11??lab\test\Debug\test.pdb
?????文件??????54728??2011-05-15?22:39??lab\test\Debug\TestMd2.obj
?????文件?????194722??2011-05-08?14:58??lab\test\Debug\tga.obj
?????文件??????14809??2011-05-14?01:06??lab\test\Debug\to.obj
?????文件?????263168??2011-05-15?23:59??lab\test\Debug\vc60.idb
?????文件?????143360??2011-05-15?15:11??lab\test\Debug\vc60.pdb
?????文件???????8107??2011-05-14?17:06??lab\test\maze.cpp
?????文件????????203??2011-05-13?18:55??lab\test\maze.h
?????文件??????24870??2011-05-10?21:44??lab\test\Md2.cpp
?????文件???????3083??2006-06-19?14:59??lab\test\Md2.h
?????文件???????4736??2011-05-14?01:20??lab\test\test.dsp
?????文件????????514??2011-05-08?17:07??lab\test\test.dsw
?????文件?????107520??2011-05-15?23:59??lab\test\test.ncb
?????文件??????55808??2011-05-15?23:59??lab\test\test.opt
............此處省略24個文件信息
評論
共有 條評論