不同游戏程序开发工具的组件的知识谈到微软的DirectXSDK

不同游戏程序开发工具的组件的知识谈到微软的DirectXSDK

游戏程序开发工具很多,不同的游戏平台有不同的开发工具。 在个人电脑上氛围,可以使用目前的软件开发工具,如:C、C++、VC++、Delphi、C++Builder等。由于Windows操作系统的普及及其强大的多媒体功能,越来越多的游戏支持Windows操作系统。 由于VC是微软的产品,用它编写Windows程序有强大的程序接口和丰富的开发资源支持,再加上VC严格的内存管理,对栈的分配处理好,生成的代码体积小,性能高在稳定性方面的优势,使得VC++成为了主流的游戏开发工具。 2、DirectX组件知识说到Windows系统下的游戏开发,就要说到微软的DirectXSDK。 Windows 的一个主要优点是应用程序和设备之间的独立性。 然而,应用程序的设备独立性是通过牺牲部分速度和效率来实现的。 Windows 在硬件和软件之间添加了一个中间抽象层。 通过这些中间层,我们的应用程序可以在不同的硬件上使用。 但是,我们不能充分利用硬件的特性来获得最大的计算和显示速度。 这在编写 Windows 游戏时是致命的,而 DirectX 就是为了解决这个问题而设计的。 DirectX 由快速的低级库组成,不会对游戏设计施加太多限制。

Microsoft 的 DirectX 软件开发工具包 (SDK) 提供了一组出色的应用程序编程接口 (API),可为您提供开发高质量实时应用程序所需的资源。 DirectX的组成部分有: DirectDraw:使用页面切换的方式实现动画,它既可以访问系统内存,也可以访问显示内存。 Direct3D:提供 3D 硬件接口。 DirectSound:立体声和 3D 音效,同时管理声卡的内存。 DirectPlay:支持多人在线游戏的开发游戏开发所用到的技术,可以处理游戏中网络间的通信问题。 DirectInput:为大量设备提供输入支持。 DirectSetup:自动安装 DirectX 驱动程序。 随着 DirectX 版本的改进,还添加了用于音乐播放的 DirectMusic。 3、AlphaBlend技术 现在很多游戏都会用到AlphaBlend技术,以达到光影或图像的透明效果。 所谓AlphaBlend技术,其实就是根据“Alpha”混合向量的值,将源像素和目标像素进行混合,一般用于处理半透明效果。 计算机中的图像可以用R(红)、G(绿)、B(蓝)三原色来表示。 假设一幅图像是A,另一幅透明图像是B,那么通过B看A游戏开发所用到的技术,表观图像C是B和A的混合图像,B图像的透明度为alpha(值为0-1 ,0为完全透明,1为完全不透明),Alpha混合公式如下:R(C)=alpha*R(B)+(1-alpha)*R(A)G(C)=alpha*G (B)+(1-α)*G(A)B(C)=α*B(B)+(1-α)*B(A)R(x), G(x), B(x)分别指颜色的RGB分量的原色值。

从上面的公式可以看出,Alpha其实是一个决定blend透明度的值。 应用Alpha混合技术,可以在游戏中实现很多特效,比如火、烟、阴影、动态光源等半透明效果。 4、A*算法在很多游戏中需要用鼠标控制人物的移动,人物从当前位置到目标位置要走最短路径。 这就需要用到最短路径搜索算法,即A*算法。 A*算法实际上是一种启发式搜索。 所谓启发式搜索,就是用一个评价函数来评价每一个决策的价值,决定先尝试哪个解。 如果估值函数可以找到最短路径,我们称之为可采性。 A*算法是一种可接受的最佳优先算法。 A*算法的评价函数可以表示为:f(n)到目标的最短路径的启发式值。 由于A*算法比较复杂游戏运营,篇幅有限。 这里简单介绍一下。 具体理论的朋友可以多看人工智能方面的书籍来深入了解。 其他技术包括粒子系统、音频和视频通话以及图像文件格式。 信息存储等,可以在学好DirectX的基础上,逐步学习更多的技术。 游戏开发中使用的技术和工具 游戏程序开发工具很多,不同的游戏平台也有不同的开发工具。 在个人电脑上,可以使用目前的软件开发工具,如:C、C++、VC++、Delphi、C++Builder等。由于Windows操作系统的普及及其强大的多媒体功能,越来越多的游戏支持Windows操作系统。 由于VC