《易语言Direct支持库教程》王军.docx
《《易语言Direct支持库教程》王军.docx》由会员分享,可在线阅读,更多相关《《易语言Direct支持库教程》王军.docx(21页珍藏版)》请在三一办公上搜索。
1、易语言Direct支持库教程王军易语言DirectX支持库教程 前 言 DirextX是一款微软公司出品的比较好的二维图形制作工具,易语言也提供了个DirextX支持库。本文将介绍如何使用这个DirextX支持库来制作应用程序。DirextX的优点就是画图片的速度快,操作基本上是非常方便的,包括可以使用控制手柄进行游戏的编程。除了广泛应用于游戏编程之外,其实,它也可以应用于大图片的快速显示运用,如地理信息系统等。DirextX支持库的特点是,先在后台画好图,然后再显示到前台来,这是DX的基本方法,大家只要了解了,就可以进行下面的学习了。 在本文中,将把DirextX支持库及其相关技术简称为D2
2、D或DX。 学习D2D需要以下的基础: 1有较好的美术基础,能画出原创漂亮的图形,有使用PhotoShop或Paniter绘图软件的实践经验; 2了解微软BMP位图的相关知识,知道位图深度以提供支持库指定格式的图片,还可以运用到粒子系统上; 3会三维建模,如果制作动态的角色,需要掌握3DSMAX,画出角色的样子,然后将每一帧抓下来存为BMP图片组使用。 4最好能看过易语言OpenGL的教材,对屏幕的处理方式有所了解。 5了解图层的概念,页面的概念与图层的概念差不多。 6有一定的写游戏的基础,如以前用易语言写过简单的2D平面游戏。 7有数学及物理学基础,对于动力物理学有一定的研究。 8有面向对象
3、的编辑基础,因为D2D中很多都是直接对象操作,这样编程才较为方便。 9如果想要编写网络型的2D游戏,那就要有网络编程的基础。 本书参考的例程有: “无敌战机”、“超级玛丽”、“传奇世界”等程序。 “无敌战机”、“超级玛丽”源代码在易语言安装目录中有。 “传奇世界” 源代码下载网址: 神2的DirectX特殊效果展示: OpenGL支持库及向导使用教程 学习任务: 通过本文的学习,大家可以掌握基本的DirextX编程方法。 1 目 录 一基本知识. 2 二画一个屏幕背景图. 5 三显示模式. 8 四页面绘图. 10 五镂空效果. 13 六角色移动. 16 七动画鼠标. 18 八发射子弹. 19
4、九程序优化. 22 十角色动作. 24 十一地图移动 . 26 十二拼接地图 . 31 十三叠加模拟窗口 . 31 十四操作杆控制器 . 31 十五声音播放 . 31 十六矩阵操作 . 32 十七图像混合. 32 十八粒子系统 . 33 十九脚本语言 . 33 二十降低内存 . 33 二十一网络通讯. 33 二十二总结. 33 一基本知识 1什么是DirectX? DirectX包含绘图设备组件,输入设备组件、音频设备组件,网络通讯组件等。但不使用DirectX大家也可以完全实现同样的功能,如图形方面可以使用OpenGL,网络方面可以使用WinSock。 DirectX处于应用程序与硬件之间。
5、应用程序指的是我们所开发的游戏程序,如果使用的是图形组件,硬件指的是显卡。 我们指示DirectX要完成某个功能,如果硬件支持这个功能,DirectX会调用显卡驱动程序来完成,称为“硬件加速”;如果硬件不支持这个功能,DirectX会使用软件模拟,称为“软件模拟”。当然,硬件加速要比软件模拟快很多。 2 2输入设备组件/DirectInput 如果你玩过网络游戏,你一定对“左手按着键盘,右手握着鼠标”这两个动作很熟练。要控制游戏,DirectInput可以帮我们处理键盘鼠标的输入。不仅如此,DirectInput还可以处理操纵杆,实现有趣的力反馈。 3音频设备组件/DirectMusic 如果
6、让你塞住双耳度过一天,相信你会很难受。同样,如果游戏里没有可以影响玩家情绪的音乐,就会显得相当的沉闷。国内著名的角色扮演游戏仙剑奇侠传,许多人认为它的成功百分之六十来自于它那些扣人心弦的音乐。DirectMusic在游戏开发中扮演着音乐演奏家这一重要角色。 4网络通讯组件/DirectPlay DirectPlay应用于网络传输,但早期的DirectPlay版本效率很低,以至于游戏开发者们都宁愿使用WinSock。DirectX8.0版开始,微软对DirectPlay整个模块都重新进行了构造,比起以前的版本有了很大的进步。 5绘图设备组件/DirectDraw DirectX中的DirectD
7、raw应用于2D图形,可惜微软从DirectX8.0版开始DirectDraw便不再更新了,DirectDraw一直只停留在7.0版,不过不要紧,它依然可以工作得很好。大家在DirectX 9.0版中仍可以使用DirectDraw 7.0。 6双缓冲动画技术 也许你早已了解,所谓的动画,只是一些静态图片快速切换所做出来的视学效果。应用于游戏,实现动画效果的一般方法是先清屏,在屏幕画上第1幅图像,再清屏画上第2幅图像,然后第3幅、第4幅依此类推,人眼看上去就象是屏幕上的图像在“动”。但这样的动画难免会出现闪烁,这样的效果并不是我们想要的。 现在大家了解一下DirectDraw是如何实现动画效果的
8、。DirectDraw为我们准备了两张页面,一张是前台页面,另一张称为后台页面。大家在屏幕上看到的永远只是前台页面,而后台页面是不可见的。实现动画的原理是:先在后台页面画图像,然后把后台页面和前台页面进行交换,即原来的前台页面成了后台页面,原来的后台页面成了前台页面,这样在原来的后台页面画的图像就会显示在屏幕上。然后又在现在的后台页面画图像,画好后又换页。如此循环下去就会产生顺畅的动画效果。由于是在后台页面画好了图像后才执行换页,所以不会产生闪烁。在有的书中,称后台页面为后台缓存,前台页面为主页面,在本书中,笔者统一了叫法,并且在变量申明时也按此称谓,以方便大家的学习。 实现动画效果时,除了主
9、要用到的前台页面和后台页面外,还有一种页面叫做预备页面。它的作用是用于预先存放图像。基本上,是先把预备页面的图像传送到后台页面,再执行换页操作。 DirectDraw实现动画的原理如下图所示: 3 预备页面1 预备页面2 后台页面 换页 前台页面 后台页面 前台页面 换页后 7预备页面 DirectDraw的前台页面便是显示在显示器的页面,如果你不使用双缓冲技术,在主页面画图会直接在显示器上显示出来。在创建主页面时可以指定是否使用后台缓冲,如果使用,成功创建前台页面后,可以从中提取出后台页面。 DirectDraw除了前台页面和后台页面之外,还有预备页面。预备页面主要用于存放游戏里用到的图像,
10、如游戏背景和游戏角色。 假设有一个游戏背景的预备页面和一个游戏角色的预备页面,大致的过程是:先清空后台页面,然后把游戏背景图像预备页面传送到后台页面,再把游戏角色图像预备页面传送到后台页面,最后进行换页,这便完成了游戏里的一帧。 小知识:DirectX是什么? DirectX是一种图形应用程序接口,简单地说它是一个辅助软件,一个提高系统性能的加速软件,微软创建开发的。他的意思不难理解,Direct是直接的意思,X是很多东西,加在一起就是一组具有共性的东西,这个共性就是直接。微软定义它为“硬件设备无关性”。 DirectX由显示部分、声音部分、输入部分和网络部分四大部分组成。 显示部分又分为Di
11、rect Draw和Direct 3D前者主要负责2D加速。它包括很多方面:我们用播放mpg、DVD电影、玩雷电、麻将三缺一等等4 都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw,由于显示卡的2D性能基本上已经达到极限,很多显卡都多的很不错,人们一直都把焦点放在了后面的D3D身上。 后者负责3D加速,比如极品飞车3-6的车身与烟雾,CS中的场景和人物,古墓丽影中劳拉等等,但是经典游戏Quake3除外,它使用了另一种API接口OpenGL。 声音部分包括声效和MIDI音乐,不同的声卡表现的效果不同,目前的声卡基本上都支持DirectSound。但最好的声音效果主要有EXA和
12、A3D,如果您的声卡支持这两种特效,您融入到真实的3D游戏世界之中。如果声卡支持更好的波表,通过DirectX的Direct Music会有不俗的表现。 输入部分:Direct Input不仅支持更多的游戏输入设备,而且对这些设备的识别与驱动上更加细致,充分发挥设备的最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。 网络部分:DirectPlay,它为游戏而来。通过它可以让计算机之间互联无障碍,提供多种连接方式,TPC/IP,IPX,Modem,串口等等。 二画一个屏幕背景图 易语言汉语编程环境提供了DirectX支持库,这是写2D动画的支持库,还有一个Direct3D支
13、持库,是制作3D动画之用。本书重点介绍DirectX支持库。 1DirectX支持库 大家先看一下支持库的数据类型,如下图所示: 在此提示大家的是,如果先了解如何使用D2D支持库,那么从我们教材的安排来看,也是从简单到复杂的,那么放在大家面前的第一个问题就有可能是你要显示一张背景图片,如何来显示呢?这个是与“屏幕”数据类型直接相关的。 下面给出一个显示图片的小例程,代码如下: 5 上述代码中,建立了一个“屏幕”类型的“屏幕页面”程序集变量,在启动窗口创建完毕事件中,先进行了屏幕的预置,然后载入一张外部BMP图片存放在后台缓冲中,最后由时钟组件将后台的画面显示到前台来,时钟周期为10。 好了,我
14、们的第一张图片就完成了,大家可以找一张图片运行一下。效果如下图所示: “1_背景显示1.e” 时钟的作用: 大家可以试一下,将时钟周期的交换页面代码移到启动窗口创建完毕事件中去,这时运行,没有显示图片,再建一个按钮,将交换页面写在这里,大家可以在运行后,点击按钮显示图片,但如果图片移出窗口一半后再移回来,可以看到刚才移出屏幕的那一半图片不显示出来了,通过再次点击按钮就又显示了。通过6 以上的操作,大家可以了解到,就是通过时钟不停的交换页面来显示动画的。因此时钟的作用就是最后的显示动作。有时大家设计一个游戏时,发现有时屏幕变花了,有时不显示图片了,这就是可能没有将显示图像的代码放在时钟内不停显示
15、的原因了。 显示一个黑色背景的代码如下: 显示一个白色为底的运行效果如下所示: “2_背景显示2.e” 大家可能在想,是否可以载入JPG图片呢,回答是可以的,在易语言自带的例程“无敌战机”中就采用了JPG图片为背景图片。 7 三显示模式 D2D可以设置窗口显示模式为:全屏模式或窗口模式。 学习“屏幕”数据类型首先要了解的就是显示模式。 先了解与屏幕有关的三个命令:“创建全屏模式”、“创建窗口模式”、“是否全屏”。这是在设计一个D2D程序之前必须要考虑好的。 在第一个例程中是显示了窗口模式,加入是否创建成功的代码后如下所示: 8 参见例程“4_显示模式1.e” 大家还可以将窗口的“边框”属性设置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 易语言Direct支持库教程 语言 Direct 支持 教程 王军

链接地址:https://www.31ppt.com/p-3181031.html