• 大小: 3.33MB
    文件类型: .rar
    金币: 2
    下载: 2 次
    发布日期: 2023-10-13
  • 语言: 其他
  • 标签: OpenGL  小车  漫游  3D  

资源简介

使用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个文件信息

评论

共有 条评论