资源简介
使用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个文件信息
相关资源
- OpenGL参考手册
- 基于MSP430G2553的蓝牙控制小车
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- Delphi实现图像拖动,无延时。
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- 红外循迹小车VHDL程序
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- 全国电子设计大赛自动寻迹小车论文
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 最简单的平衡小车
- 智能小车循迹加避障电路图
- STM32循迹小车
- 基于PLC的自动运料小车的控制
- 小车自动往返控制电路图
- 基于PIC单片机的智能循迹小车设计
- s形无碳小车三维装配图
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 遗传算法越野小车unity5.5
评论
共有 条评论