基于DirectX 的游戏引擎概述
2.1 游戏引擎开发目标和结构描述
本游戏引擎基于Microsoft DirectX 9C SDK的基础上,探讨和分析了自制3D游戏此外,本游戏引擎还具有魔法系统类(CMagic)、地形自动生成系统类(CTerrain)、游戏环境渲染系统类、粒子系统类、用户事件响应系统、DirectX 3D异常类(D3DException)、3DSMAX 模型对象驱动控制类。考虑到实际运行的需要,本引擎还支持游戏对象动态生成。以上的所有系统,都进行了面向对象的封装,使得和游戏引擎的框架(DXUT)、脚本解析引擎完美的融合在一起。
2.2 Microsoft DXUT框架简介
本游戏引擎是运行在DXUT框架的基础上,DXUT是微软为了简化DirectX在Win32平台下的开发而实现的一套框架。由于该框架较为复杂,本着实用为主的精神,本人对其中重要的部分进行了打包,包名为Microsoft。下面我就对DXUT中的一些重要的函数和整个框架调用API的顺序进行一个简单介绍。 程序启动:InitApp →MsgProc →IsDeviceAcceptable →ModifyDeviceSettings OnCreateDevice →OnResetDevice → 渲染主循环 渲染主循环: OnFrameMove → OnFrameRender 改变设备: ModifyDeviceSettings → OnLostDevice →根据需要调用 OnDestroyDevice → OnResetDevice → 渲染主循环 程序退出: OnLostDevice →OnDestroyDevice 下面是DXUT下各函数的作用: InitApp 初始化一些图形控件和GUI的消息处理函数 OnCreateDevice 创建设备时的回调函数,用于创建D3DPOOL_MANAGED资源 OnResetDevice 重设设备时的回调函数,用于创建D3DPOOL_DEFAULT资源 OnFrameMove 动画实现处,常用于矩阵转换等操作 OnFrameRender 渲染实现处,常用于渲染场景 OnLostDevice 设备丢失时的回调函数,释放由OnResetDevice创建的资源 OnDestroyDevice 设备析构时的回调函数,释放由OnCreateDevice创建的资源 IsDeviceAcceptable 创建设备时用来对所有可用设备进行过滤的函数 ModifyDeviceSettings 更改设备时的回调函数,用于实现更改设备时所需做的其他操作 MsgProc 安排各空件处理消息的顺序 OnGUIEvent 程序控件绑定的消息处理回调函数
掌握了以上的基本函数后,就可以把游戏引擎中的一些函数架设在此基础之上了。
游戏引擎开发包D3DUtility简介
D3DUtility开发包是本游戏引擎的核心部分,里面封装的许多类库,提供给DXUT框架调用,下面展现一下该工具包的具体内容。更加详细的UML建模,参看附件的Tiny.gif。 CMagic:是负责魔法系统的基类,它的派生类是CCrystalMagic、CBlazeMagic。 CCrystalMagic:产生水晶魔法效果的类。 CBlazeMagic:产生火焰魔法效果的类。 DirectX3DObject:是D3D对象的基类,它的派生类是DirectX3DDotXObject。 ID3DObjectFactory:是负责产生D3D对象的工厂类,是一个接口,D3DDotXFactory实现了它。 IControlDirectX3DObject:是负责控制D3D模型对象具有的抽象行为,它是一个接口。 DirectX3DDotXObject:是用来驱动和控制3DSMAX模型对象的类,它实现了IControlDirectX3DObject,且从DirectX3DObject派生而来。 ………………………………. 游戏引擎文件的组织结构
本引擎的文件组织参考了Java包结构的组织形式,结构清晰易于管理。主要有D3DUtility包和Microsoft包,Microsoft包中打包好了DXUT框架下的常用类库,最后是主文件D3DMain.cpp和stdafx.h。
一款基于DirectX 游戏引擎的实现及主要类库说明
3.1 开发环境 IDE:Microsoft Visual Studio 2005 Professional Edition (Visual C++ 2005) DirectX SDK:Microsoft DirectX 9C SDK 游戏引擎脚本IDE:XMLSpy 建模工具:Rational Rose 2003 Windows Platform:Windows XP (Service Pack 2)
3.2 游戏引擎功能描述 初步实现了用鼠标控制人物模型的移动(基于骨骼模型驱动),绚丽的魔法效果,地形的自动生成,灵活的视角移动。驱动3DSMAX模型文件(.x)的功能,及其对模型文件进行控制响应,同时还配备一个游戏脚本解析引擎。下面就争对该引擎在设计过程中的几个重要类进行一下简单的介绍。
工
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/8/8