windows游戏开发用什么软件?
2.DirectX组件的知识
说到Windows系统下的游戏开发,我们就来说说微软DirectX SDK。
Windows系统的一个主要优点是应用程序和设备之间的独立性。然而,应用程序的设备独立性是通过牺牲一些速度和效率来实现的。Windows在硬件和软件之间增加了一个中间抽象层,通过它我们的应用可以在不同的硬件上很舒服。但是,我们不能充分利用硬件的特性来获得最大的运算和显示速度。这在编写Windows游戏时是致命的,DirectX就是为了解决这个问题而设计的。DirectX由快速的底层库组成,对游戏设计没有太多的约束。微软的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-alpha)* G(A)
B(C)= alpha * B(B)+(1-alpha)* B(A)
R(x)、G(x)和B(x)分别指颜色x的RGB分量的原色值,从上面的公式可以看出,Alpha实际上是一个决定混合透明度的数值。利用Alpha混合技术,可以实现游戏中的很多特效,比如火、烟、阴影、动态光源等半透明效果。
4.A *算法
在很多游戏中,要用鼠标控制角色的移动,要走最短的路径让角色从当前位置到达目标位置。这将使用最短路径搜索算法,即A*算法。
A*算法实际上是一种启发式搜索。所谓启发式搜索,就是用一个评价函数来评价每个决策的价值,决定先尝试哪个方案。如果一个评价函数能找到最短路径,我们称之为可接受性。A*算法是可接受的最佳优先级算法。A*算法的评价函数可以表示为:f(n) = g(n)+h(n)。这里f(n)是节点n的评价函数,g(n)是从起点到终点的最短路径值,h(n)是从n到目标的最短路径的启发式值。由于A*算法的复杂性,限于篇幅,这里简单介绍一下。具体理论,朋友可以看人工智能方面的书了解详细情况。
其他技术包括粒子系统、音视频调用、图像文件格式和信息存储等。可以在学好DirectX的基础上逐步学习更多的技术。