欢迎来到天天文库
浏览记录
ID:38740574
大小:46.00 KB
页数:8页
时间:2019-06-18
《游戏开发基础(3)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、游戏开发基础(3)第三章DirectXSDK简介第一节关于DirectXSDKMicrosoftDirectX提供了一套非常优秀的应用程序接口,包含了设计高性能、实时应用程序的源代码。DirectX技术将帮助您建构下一代的电脑游戏和多媒体应用程序。它的内容包括了DirectDraw、DirectSound、DirectPlay、Direct3D和DirectInput等部分,它们分别主要应用在图形程序、声音程序等方面。由于DirectX,使在Windows下运行应用程序的性能可以与在DOS或游戏平台下运行的应用程序性能相媲美,甚至超过它们。它将为您的Windows游戏开发提供一个具
2、有鲁棒性的、标准化的操作环境。DirectX包括两部分:运行期部分(Runtime)和SDK。在DirectX开发时,这两部分都要用到,但在DirectX应用程序运行时只用运行期部分。在WindowsNT4.0及以上版本中含有DirectX运行期部分,Win95则没有。但Win95可以很容易获得DirectX运行期部分。而WindowsNT4.0以前的版本不能运行DirectX程序。许多基于DirectX的应用程序和游戏都包含了DirectX运行期部分。它目前有五个版本:1、2、3、5和6(没有版本4)。不同版本具有不同的运行期部分,但新版本的运行期部分可与旧版本的应用程序配合,即
3、向上兼容。当前大部分流行的游戏都是基于版本5开发的。第二节DirectX5SDK的获得DirectXSDK包括开发DirectX应用程序所需要到的全部示例和帮助文件,但这些都是可选资源,必须的文件是头文件(.h文件)和库文件(.lib文件)。获得DirectXSDK比获得运行期部分要困难一些。WindowsNT4.0和Win95都不带DirectXSDK,要获得SDK可通过以下3种办法:*购买Visualc++5.0(包括DirectXSDK)*访问MicrosoftWeb站点的DirectX下载页*成为MSDN(Microsoft开发网络)用户SDK也可以从MicrosoftWe
4、b站点上获得,下载量很大,尤其是在拨号连接时,有可能需要一整夜的时间。成为MSDN用户是获取SDK的好办法,除非您反对通过Microsoft付费的方式获得升级及其操作系统的程序开发特权。SDK由MSDNlevel2及以上提供。第三节元件对象模型(COM)DirectX根据Microsoft的COM(ComponentObjectModel,即元件对象模型)规格得以实现。COM设计成用来提供完全便携的、安全的、可升级的软件结构。COM使用一个面向对象的模型,这要比像C++等语言所用的模型更严格。例如,COM对象经常通过成员函数进行存取,而且并不具备公共数据成员。COM对继承性的支持与
5、C++相比也是有限的。很多DirectX中API是作为COM对象的实例来创建的。您可以这样看:对象就象一个黑盒子,它代表了硬件,从而需要通过一个接口与应用程序进行联络。通过COM接口发送和接收的命令被称为“方式(method)”。例如,方式IDirectDraw2::GetDisplayMode是通过接口IDirectDraw2发送,从而能够从DirectDraw对象得到当前显示适配器的显示模式。COM对象提供实际函数性,而COM接口则提供存取函数性的方法。COM对象不能被直接存取,相反,所有的存取者通过接口来完成。这条规则是如此强有力的得到遵守,以致于我们不能给任何COM对象以名
6、称。我们只能给用来存取对象的接口名称。所有的COM接口都是从IUnknown接口中衍生出来的。“I”标志经常用于命名COM接口(它代表Interface即接口)。IUnknown接口提供3个成员函数,所有COM接口因而继承这些函数:●AddRef():使对象内部引用值加一。例如,当您创建一个新的接口时,构造函数将自动调用AddRef()。●QueryInterface():让COM对象就它们是否支持特定接口进行查询。例如,升级的COM对象提供附加的接口,而非现有接口的修改版。QueryInterface()函数可以用来确定旧的接口,以决定新的接口是否被支持。如果被查询的对象不支持有
7、问题的接口,则更替接口的指针就返回。●Release():使对象内部引用值减一。您应该在接口的指针将要超出范围时或者要通过使用接口指针来结束时使用这个函数。对象的每一个DirectX接口都代表了一种设备,例如IDirectDraw2、IDirectSound和IDirectPlay。DirectX对象模型象征性地为每一个设备提供了一个主对象,其它所支持的功能对象由主对象衍生而来。例如,DirectDraw对象代表了显示适配器,您可以由它创建DirectDrawSurf
此文档下载收益归作者所有