资源简介
绘制了天空和地形,在地形中放入了一个木箱和一个石球,还有一个人物。通过摁W、A、S、D四个键可以模拟人物在地形上移动,左上角会有移动的速度以及移动时刻的坐标值。

代码片段和文件信息
//=========================================================================
/**
* @file Test.cpp
*
* 项目描述: 3DS文件载入
* 文件描述: 具体实例类
* 适用平台: Windows98/2000/NT/XP
*
* 作者: BrightXu
* 电子邮件: huoxini@hotmail.com
* 创建日期: 2006-09-13
* 修改日期: 2006-12-02
*
* 在这个类中您必须重载如下几个虚函数
*
* virtual bool Init();
* 执行所有的初始化工作,如果成功函数返回true
*
* virtual void Uninit();
* 执行所有的卸载工作
*
* virtual void Update(DWORD milliseconds);
* 执行所有的更新操作,传入的参数为两次操作经过的时间,以毫秒为单位
*
* virtual void Draw();
* 执行所有的绘制操作
*/
//=========================================================================
#include “stdafx.h“
#include “3DSFile.h“
/** 创建一个程序的实例 */
GLApplication * GLApplication::Create(const char * class_name)
{
Test * test = new Test(class_name);
return reinterpret_cast(test);
}
/** 构造函数 */
Test::Test(const char * class_name) : GLApplication(class_name)
{
/// 初始化用户自定义的程序变量
m_Fps = 0;
m_RenderMode = true;
sp = false;
//m_3DS = new C3DSLoader();
}
/** 初始化OpenGL */
bool Test::Init()
{
/** 用户自定义的初始化过程 */
glClearColor(0.0f 0.0f 0.0f 0.5f);
glClearDepth(1.0f);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST);
ResizeDraw(true); /**< 改变OpenGL窗口大小,直接调用子类的函数 */
/** 启用纹理 */
glEnable(GL_TEXTURE_2D);
/** 初始化字体 */
if(!m_Font.InitFont())
MessageBox(NULL“初始化字体失败!““错误“MB_OK);
/** 初始化地形 */
if(!m_Terrain.initTerrain())
{
MessageBox(NULL“初始化地形失败!““错误“MB_OK);
exit(0);
}
/** 初始化天空 */
if(!m_SkyBox.Init())
{
MessageBox(NULL“初始化天空失败!““错误“MB_OK);
exit(0);
}
/** 载入TGA纹理 */
if(!m_TGATexture[0].Load(“data/sphere.tga“))
{
MessageBox(NULL“加载TGA纹理失败!““错误“MB_OK);
exit(0);
}
if(!m_TGATexture[1].Load(“data/box.tga“))
{
MessageBox(NULL“加载TGA纹理失败!““错误“MB_OK);
exit(0);
}
/** 初始化3DS文件 */
m_3DS.Init(“model.3ds“);
/** 设置摄像机 */
m_Camera.setCamera( 381 35 674 374.5 35 669 0 1 0);
return true; /**< 成功返回 */
}
/** 用户自定义的卸载函数 */
void Test::Uninit()
{
}
/** 更新摄像机 */
void Test::UpdateCamera()
{
m_Camera.setViewByMouse();
/** 键盘按键响应 */
if(m_Keys.IsPressed(VK_SHIFT)) /**< 按下SHIFT键时加速 */
{
m_Camera.setSpeed(1.5f);
}
if(!m_Keys.IsPressed(VK_SHIFT))
{
m_Camera.setSpeed(0.2f);
}
if(m_Keys.IsPressed(VK_UP) || m_Keys.IsPressed(‘W‘)) /**< 向上方向键或‘W‘键按下 */
m_Camera.moveCamera(m_Camera.getSpeed()); /**< 移动摄像机 */
if(m_Keys.IsPressed(VK_DOWN) || m_Keys.IsPressed(‘S‘)) /**< 向下方向键或‘S‘键按下 */
m_Camera.moveCamera(-m_Camera.getSpeed()); /**< 移动摄像机 */
if(m_Keys.IsPressed(VK
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-12-10 16:08 3DSLoad\
文件 9877 2006-12-14 17:53 3DSLoad\3DSFile.cpp
文件 2746 2006-12-14 15:08 3DSLoad\3DSFile.h
文件 300032 2010-07-13 09:30 3DSLoad\3DSLoad.exe
文件 756736 2010-07-13 09:31 3DSLoad\3DSLoad.ncb
文件 3347 2006-11-08 21:13 3DSLoad\3DSLoad.rc
文件 874 2010-07-13 09:29 3DSLoad\3DSLoad.sln
文件 903 2006-12-13 21:16 3DSLoad\3DSLoad.sln.old
文件 13312 2010-07-13 09:31 3DSLoad\3DSLoad.suo
文件 13312 2006-12-14 17:53 3DSLoad\3DSLoad.suo.old
文件 5911 2010-07-13 09:28 3DSLoad\3DSLoad.vcproj
文件 4926 2006-12-14 17:53 3DSLoad\3DSLoad.vcproj.7.10.old
文件 5847 2010-07-12 23:01 3DSLoad\3DSLoad.vcproj.8.00.old
文件 1411 2010-07-12 23:10 3DSLoad\3DSLoad.vcproj.MACBOOK.Administrator.user
文件 1417 2010-07-13 09:31 3DSLoad\3DSLoad.vcproj.WANGQICHAO.wang.user
文件 17158 2010-07-12 23:02 3DSLoad\3DSLoader.cpp
文件 4742 2006-12-14 15:17 3DSLoad\3DSLoader.h
文件 152516 2010-07-12 13:53 3DSLoad\bak.bmp
文件 2660 2006-12-14 15:06 3DSLoad\BMPLoader.cpp
文件 1053 2006-12-14 15:06 3DSLoad\BMPLoader.h
文件 6059 2006-12-14 15:06 3DSLoad\Camera.cpp
文件 1773 2006-12-14 15:06 3DSLoad\Camera.h
文件 786488 2001-07-13 17:42 3DSLoad\cyborg.bmp
目录 0 2012-12-10 16:08 3DSLoad\data\
文件 786486 2006-12-10 15:43 3DSLoad\data\back.BMP
文件 786486 2006-12-11 22:00 3DSLoad\data\Bottom.bmp
文件 192824 2006-12-12 23:53 3DSLoad\data\box.tga
文件 9 2007-03-10 08:49 3DSLoad\data\Desktop_.ini
文件 786486 2006-12-10 16:53 3DSLoad\data\front.BMP
文件 786486 2006-12-10 16:53 3DSLoad\data\left.BMP
文件 786486 2006-12-10 16:53 3DSLoad\data\right.BMP
............此处省略56个文件信息
- 上一篇:USB系统体系.pdf
- 下一篇:openGL特效动画集合
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- Delphi实现图像拖动,无延时。
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
评论
共有 条评论