深度探索DxFramework 1
请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com
第1章 DxFramework工程简介 1.1 工程的来源和作者 DxFramework是由Corey于年月发起的。Corey 开发了项目中最初的2D游戏引擎。并且负责了游戏所需的艺术资源的相关工作。他创建了DxFramework的第一个版本。Corey现在在Maxis公司工作,不再是DxFramework的主要的开发者了。而随后加入的Jonathan现在已经是项目管理员。他在Laird教授的领导下参与了程序设计的很多方面的工作。还有一位重要的贡献者是David Yeung,作为DxFramework的重要组成部分的3D Framework和相关示例demo的最原始的版本正是由David Yeung所编写的。还有就是Nuttapong,Nuttapong在David Yeung之后对3D Framework部分做了大量的扩充,增加了许多的功能以及一些demo和sample。
另外还对DxFramework作出贡献的人员还有:
Adam Tercala创建了world map demo的最初版本 Jeremy Lee创建了sound demo(DEMO C)的最初版本,并且撰写了C_Sound类 Evan Leung创建了最初的用户接口类(User Interface Object class C_UIObject)以及一系列继承自此类的其他类。
1.2 工程的配置 本书剖析的版本是0.93版本,这个版本是2004月8月16日发布的。也是在本书截稿为止的最新版本。在DxFramework的主页中所发布的是三个Zip格式的压缩包。它们分别是:
DxFramework-binary-0.9.3.zip DxFramework-engine-0.9.3.zip DxFramework-0.9.3.zip
DxFramework-binary-0.9.3.zip只是包含了DxFramework的所发布的可执行数据文件版本。没有相关的源代码。而DxFramework-engine-0.9.3.zip也只是包含了DxFramework的引擎框架代码,而没有示例的代码以及运行所需要的相关文件和数据。而DxFramework-0.9.3则两者兼备。如果是利用DxFramework来编写我们自己的游戏,那么当然选择基于DxFramework-engine-0.9.3,但是本书是通过剖析引擎和示例代码来学习游戏设计技术的,因此本书的剖析对象是DxFramework-0.9.3.zip的内容。
下载解压缩之根目录有如下的一些文件和目录,目录如下:
目录 内容 Data 存放示例demo"pic pac"所需的地图数据文件 Docs 存放DxFramework相关的文档 Images 存放DxFramework所需的一些艺术资源,比如一些示例程序所需要的图片等等 Resources 存放DxFramework所用到的图标文件,里面是big.ico和small.ico文件 Sounds 存放DxFramework使用到的一些声音文件,有wav,mp3,mid格式 Source 存放了DxFramework的引擎和示例的原代码,这里面的内容便是本书的重点部分 Frustum 点击鼠标将能绘制该视截体的轮廓,这样可以移开camera到别的位置去看看这个视截体像什么。悬浮在空中的球,当鼠标点击的时候,它会依据它在视截体内与否来决定是否改变其纹理。 Models Models Demo装载了MD2格式的模型和X格式的模型。MD2的动画可以循环播放 Seek and Hide 追踪和躲藏,演示一个简单的AI游戏 Simple Demo 本demo演示了如何使用DxFramework来开发一个3D游戏。这个demo的代码有很多的注释和演示。 Ray Tracking 这个demo演示了如何使用鼠标来点击选中不同的DxFramework图元。鼠标点击点将会变成一个会延伸扩展的球的球心。 LandScape and Billboard 本demo展示一个通过高度图生成的风景地貌。另外还展现了公告板技术。 Split 演示如何把一个基本图元切割成更小的基本图元 MD3 Demo 演示了使用ID Software定义了md3文件格式的模型 BSP 演示了使用二叉空间分割树(binary space partitation tree)对场景数据进行组织 文件如下: