资源简介
使用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个文件信息
相关资源
- VS2012OpenGL配置所需要的全部libdllh文件
- 最简单的平衡小车
- 智能小车循迹加避障电路图
- STM32循迹小车
- 基于PLC的自动运料小车的控制
- 小车自动往返控制电路图
- 基于PIC单片机的智能循迹小车设计
- s形无碳小车三维装配图
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 遗传算法越野小车unity5.5
- 毕业设计智能小车
- 基于K60的线性CCD摄像头的自主循迹平
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- 灭火小车程序
- opengl——爆炸
- OpenGL三维地形建模
- 五路循迹智能小车
- labview程序无线控制的小车
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- 平衡小车之家全套资料
- 循迹小车51程序(超声波 颜色识别 舵
- 运料小车PLC编程
- 自动入库小车设计
评论
共有 条评论