DirectX游戏开发入门
日期:2007年6月24日 作者: 查看:[大字体 中字体 小字体]-
一.简介 今天我们要接触到令人敬畏的DirectX。它比Windows GDI要快好几倍,可用于不同的语言和多种平台,支持从绘制象素到高级3D图象,从播放简单声音到数字音乐,从键盘控制到反震手柄……它给你游戏编程所需的一切(有点夸张)。
当然了,它是巨大的,需要好几本书才能含盖它的全部。先不要去担心我在这里所教给你之外的数不清的知识,毕竟我把你推到了起跑线上。
阅读本章,你需要前几章的知识和C语言的知识,由于我们还要谈到组件对象模型(COM),它是面向对象系统的基础,你最好还要有一点儿C++的知识。没有也不太要紧,我在讲到这处时会照顾你的。反正你记住,使用DirectX并不需要多少C++的知识。开始吧!
二.什么是DirectX?
DirectX是游戏制作者的API(Application Development Interface)。它是一组允许你直接控制计算机硬件设备的软件。如果你的硬件支持DirectX,并且你用硬件加速你的程序,这就意味着一个字——快。不用担心你的硬件知识,你不会真正的接触到它们。我们是通过硬件抽象层(HAL)和硬件仿真层(HEL)来保证设备无关性和让你的程序正常运行。
DirectX由很多组件构成,每一个都有特定的用途。组件DirectDraw是最为重要的一个,因为所有的图形都要用到它,它是2D图形的引擎,3D图形也同样离不开它。DirectDraw是我们今天就要说的。其它的组件是:
1.DirectSound:提供硬件和软件的声音混合与回放。
2.DirectMusic:处理基于消息的音乐数据。它支持乐器数字接口(MIDI)并为创建交互式音乐提供创作工具。
3.DirectPlay:使得通过调制解调器链接或通过网络来与应用程序相连成为可能。
4.Direct3D:是一个三维图形包,它提供一个高级的保留模式(Retained Mode)接口,这使得你能够实现一个完整的三维图形系统。它还包含一个低级的即时模式(Immediate Mode)接口,使得应用程序获得对渲染管线的完全控制。
5.DirectInput:为包括游戏杆、鼠标、键盘和游戏控制器在内的输入设备提供支持。它还为反馈游戏设备提供支持。
6.DirectSetup:为DirectX提供了一个简单的安装过程。它简化了更新显示和音频驱动程序的过程,并且确保没有硬件或软件冲突的存在。
7.AutoPlay:让你能够制作一张一旦插入驱动器就能自动安装的光盘。AutoPlay并非DirectX所独有,因为它是Microsoft Win32 API的一部分。
组件对象模型(COM)是DirectX的基础,有一些技巧建立COM对象——别问我怎么做——但你知道一点点还是有好处的。我只是简单说一下,如果你有兴趣,具体的细节就自己查资料吧!可能下一节你有些困惑,但不要紧,我所说的你不用太明白,毕竟我们的目的是使用COM对象,这可比创建容易多了。
三.组件对象模型(COM)
COM接口是DirectX技术的基础,没有COM就没有DirectX。(不用担心,你只需要对COM技术有一个粗浅的了解就可以使用DirectX——只要你在编写DirectX应用程序时遵循一定的步骤,甚至都可以在不了解COM的情况下使用DirectX。
DirectX的大多数API都是基于COM结构的。COM为软件模块化和软件重用提供了最坚实的基础,它的最重要的概念就是接口(interface),接口是软件重用的最基本方法。更专业的说,接口是一系列操作的规范描述,即接口规范。
所有的COM接口都是从Iunknown接口继承而来的,IUnknown接口是所有COM接口的根。IUnknown接口具有3个方法:
· QueryInterface():此方法查询新接口,并在新接口存在时返回之。
· AddRef():此方法在接口或其它应用程序连编到此COM对象上时将引用计数值递加1。
· Release():此方法将COM对象的引用计数递减1。当引用计数递减到0时,该COM对象自动释放。
所有COM对象都具有这三个方法。虽然DirectX应用程序一般不需要考虑引用计数的问题,但引用计数确实是存在的,它已经由DirectX自动完成了。我们所要做的,就是创建DirectX对象,然后在使用完毕后调用Release方法释放引用。
更多内容请看J2ME游戏开发应用 Solaris基础知识入门 Wlan组网----家庭专题专题,或
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
-
- DirectX游戏开发入门 相关文章:
- ·赛迪网联手浪潮 开启服务器市场盘点大门
- ·新手入门 ASP.NET2.0缓存技术
- ·有史以来最酷的Windows后门变态入侵
- ·菜鸟入门 AV功放机上的数字含义
- ·登录QQ小心“奥运门票”骗局
- ·电影视频服务器架设完全入门
- ·我们怎样看待门户网站的色情
- ·本地化加速 谷歌门户化首页上线
- ·入门:SEO的准则
- ·PHP入门指导:如何学习PHP?
- DirectX游戏开发入门 相关软件
- ·《冰封王座》地图:悠林门-天龙八部 2.0 BETA19b
- ·《魔法门外传5》黑暗魔君大反扑试玩
- ·《荣誉骑士》热门MHR1.7汉化修正版
- ·《暗黑之门:伦敦》E3宣传片
- ·《魔法门之英雄无敌1》中文版试玩经典怀旧
- ·澳门芳踪三缺一
- ·魔法门Ⅱ 汉化版
- ·澳门邮票欣赏——1999
- ·生死之门
- ·奇幻巨著《沙门空海之大唐鬼宴》(四卷全本)
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:C语言中可变参数的用法
精品推荐
热点TOP10
- ·用c#监控网络流量
- ·C#编写的windows计算器-源代码
- ·飞机订票系统设计
- ·C/C++笔试、面试题目大汇总
- ·《俄罗斯方块》程序编写详解
- ·Windows API-GDI入门基础知识详解(2)
- ·socket编程原理
- ·打字游戏
- ·七年IT奋斗纪实及感悟
- ·C #中的几个线程同步对象方法
- ·牛顿和拉格朗日插值算法
- ·VC++动态链接库编程之MFC扩展 DLL
- ·C# 操作文件
- ·如何用C#编写文本编辑器
- ·c#操作word表格
- ·编程特例篇——LOGO语言
- ·Raw Socket(原始套接字)实现Sniffer(嗅探)
- ·无废话C#设计模式之九:Proxy
- ·C#编程中的 New 关键词的几种用法
- ·实战开发 C# 索引器学习笔记
特别推荐
- ·C#程序开发中的常用函数汇总
- ·C#数据库操作的三种经典用法
- ·C/C++笔试、面试题目大汇总
- ·Beej的网络socket编程指南
- ·socket编程原理
- ·C语言的常用库函数使用方法分析及用途
- ·在C语言中如何处理时间和日期
- ·C++设计模式之Singleton
- ·VC++动态链接库编程之MFC扩展 DLL
- ·TCP/IP网络重复型服务器通信软件的设计
- ·DirectX游戏开发入门
- ·经典与现代的结合:在MFC中集成RAD .NET框架
- ·Windows API-GDI入门基础知识详解(2)
- ·Visual C++ 入门精解
- ·C#基础概念二十五问
- ·用C#实现pdf文件的完整性验证
- ·成为嵌入式程序员应知道的0x10个问题
- ·TCP/IP编程实现远程文件传输
- ·几个C#编程的小技巧
- ·C# 编码规范和编程好习惯
