資源簡介
使用OpenGL實現的3D小車漫游,場景使用紋理貼圖,小車使用封裝類。
1.WASD控制方向
2.F12切換全屏
3.V切換視角。
一共有三個視角,固定的世界視角,移動的第三視角,移動的第一視角。
4.pageDown和PageUp拉近拉遠鏡頭
5.右擊可以選擇車身顏色和輪胎顏色

代碼片段和文件信息
#include?“ButtonTex.h“
//#pragma?comment(?comment-type?[“commentstring“]?)
//comment-type是一個預定義的標識符,指定注釋的類型,應該是compiler,exestr,lib,linker之一。
//commentstring是一個提供為comment-type提供附加信息的字符串。
#pragma?comment(lib?“glaux.lib“)
ButtonTex::ButtonTex(void)
{
}
ButtonTex::~ButtonTex(void)
{
}
AUX_RGBImageRec*?ButtonTex::LoadBMP(char?*Filename)?//?載入位圖圖象
{
FILE?*File=NULL;?//?文件句柄
if?(!Filename)?//?確保文件名已提供
{
return?NULL;?//?如果沒提供,返回?NULL
}
File=fopen(Filename“r“);?//?嘗試打開文件
if?(File)?//?文件存在么?
{
fclose(File);?//?關閉句柄
return?auxDIBImageLoad(Filename);?//?載入位圖并返回指針
}
return?NULL;?//?如果載入失敗,返回?NULL
}
int?ButtonTex::LoadGLTextures(char?*?f1)
{
int?Status=FALSE;?//?狀態指示器
Filename1=f1;
AUX_RGBImageRec?*TextureImage[1];?//?創建紋理的存儲空間
memset(TextureImage0sizeof(void?*)*1);?//?將指針設為?NULL
if?(TextureImage[0]=LoadBMP(f1))?//?加載紋理1
{
Status=TRUE;
glGenTextures(1?&texture[0]);?//?創建紋理---------------------------
{
glBindTexture(GL_TEXTURE_2D?texture[0]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[0]->sizeX?TextureImage[0]->sizeY?0
GL_RGB?GL_UNSIGNED_BYTE?TextureImage[0]->data);
}
}
if?(TextureImage[0])
{
if?(TextureImage[0]->data)
{
free(TextureImage[0]->data);
}
free(TextureImage[0]);
}
return?Status;
}
int?ButtonTex::LoadGLTextures(char?*?f1?char?*?f2?char?*?f3)
{
int?Status=FALSE;?//?狀態指示器
Filename1=f1;
Filename2=f2;
Filename3=f3;
AUX_RGBImageRec?*TextureImage[3];?//?創建紋理的存儲空間
memset(TextureImage0sizeof(void?*)*3);?//?將指針設為?NULL
int?loop;
if?((TextureImage[0]=LoadBMP(f1))?&&?//?加載紋理1
(TextureImage[1]=LoadBMP(f2))?&&?//?加載紋理2
(TextureImage[2]=LoadBMP(f3)))?//?加載紋理3
{
Status=TRUE;
glGenTextures(3?&texture[0]);?//?創建3個紋理---------------------------
for?(loop=0;?loop<3;?loop++)?//?循環加載3個紋理
{
glBindTexture(GL_TEXTURE_2D?texture[loop]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[loop]->sizeX?TextureImage[loop]->sizeY
0?GL_RGB?GL_UNSIGNED_BYTE?TextureImage[loop]->data);
}
}
for?(loop=0;?loop<3;?loop++)
{
if?(TextureImage[loop])
{
if?(TextureImage[loop]->data)
{
free(TextureImage[loop]->data);
}
free(TextureImage[loop]);
}
}
return?Status;
}
int?ButtonTex::Create(GLfloat?xGLfloat?yGLfloat?wGLfloat?hchar?*?f1?char?*?f2char?*?f3)
{
this->x=x;
this->y=y;
this->w=w;
this->h=h;
this->tag=0;
if(!(this->LoadGLTextures(f1f2f3)))
{
return?0;
}
return?1;
}
int?ButtonTex::Create(void)
{
return?0;
}
int?ButtonTex::Create(GLfloat?xGLfloat?yGLfloat?wGLfloat?hchar?*?f1)
{
this->x=x;
this->y=y;
this->w=w;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4745??2012-12-11?19:30??201100300428-汪海洋_實驗3源碼\ButtonTex.cpp
?????文件????????978??2012-12-09?17:23??201100300428-汪海洋_實驗3源碼\ButtonTex.h
?????文件???????5620??2012-12-13?20:10??201100300428-汪海洋_實驗3源碼\CarFace.cpp
?????文件???????1547??2012-12-13?20:22??201100300428-汪海洋_實驗3源碼\CarFace.h
?????文件???????7275??2012-12-13?20:52??201100300428-汪海洋_實驗3源碼\CarPart.cpp
?????文件???????2319??2012-12-13?20:50??201100300428-汪海洋_實驗3源碼\CarPart.h
?????文件??????????1??2006-11-20?16:11??201100300428-汪海洋_實驗3源碼\ClassDiagram1.cd
?????文件?????196662??2012-12-12?12:35??201100300428-汪海洋_實驗3源碼\Data\face.bmp
?????文件?????524344??2012-12-11?23:45??201100300428-汪海洋_實驗3源碼\Data\front.bmp
?????文件??????49208??2012-12-11?18:59??201100300428-汪海洋_實驗3源碼\Data\ground.bmp
?????文件?????136945??2012-12-13?21:41??201100300428-汪海洋_實驗3源碼\Data\image\button\continue.psd
?????文件??????49208??2012-12-13?21:42??201100300428-汪海洋_實驗3源碼\Data\image\button\continue1.bmp
?????文件?????113821??2012-12-13?21:45??201100300428-汪海洋_實驗3源碼\Data\image\button\option.psd
?????文件??????49208??2012-12-13?21:45??201100300428-汪海洋_實驗3源碼\Data\image\button\option1.bmp
?????文件?????117017??2012-12-13?21:49??201100300428-汪海洋_實驗3源碼\Data\image\button\start.psd
?????文件??????49208??2012-12-13?21:49??201100300428-汪海洋_實驗3源碼\Data\image\button\start1.bmp
????..A.SH.?????36864??2009-07-14?22:19??201100300428-汪海洋_實驗3源碼\Data\image\button\Thumbs.db
?????文件??????12344??2012-12-11?23:23??201100300428-汪海洋_實驗3源碼\Data\sign.bmp
?????文件??????49208??2012-12-11?18:36??201100300428-汪海洋_實驗3源碼\Data\sky.bmp
?????文件?????524344??2012-12-12?00:20??201100300428-汪海洋_實驗3源碼\Data\watch.bmp
?????文件???????1412??2012-12-09?17:33??201100300428-汪海洋_實驗3源碼\Debug\Button2D.obj
?????文件?????????98??2012-12-09?17:33??201100300428-汪海洋_實驗3源碼\Debug\Button2D.sbr
?????文件??????21276??2012-12-11?19:33??201100300428-汪海洋_實驗3源碼\Debug\ButtonTex.obj
?????文件??????????0??2012-12-11?19:33??201100300428-汪海洋_實驗3源碼\Debug\ButtonTex.sbr
?????文件??????31941??2012-12-13?20:22??201100300428-汪海洋_實驗3源碼\Debug\CarFace.obj
?????文件??????????0??2012-12-13?20:22??201100300428-汪海洋_實驗3源碼\Debug\CarFace.sbr
?????文件??????51350??2012-12-13?20:52??201100300428-汪海洋_實驗3源碼\Debug\CarPart.obj
?????文件??????????0??2012-12-13?20:52??201100300428-汪海洋_實驗3源碼\Debug\CarPart.sbr
?????文件??????33819??2012-12-13?21:06??201100300428-汪海洋_實驗3源碼\Debug\GameScene.obj
?????文件??????????0??2012-12-13?21:06??201100300428-汪海洋_實驗3源碼\Debug\GameScene.sbr
............此處省略48個文件信息
評論
共有 條評論