《易语言动画支持库教程》

上传人:小** 文档编号:93482232 上传时间:2019-07-22 格式:DOC 页数:30 大小:839KB
返回 下载 相关 举报
《易语言动画支持库教程》_第1页
第1页 / 共30页
《易语言动画支持库教程》_第2页
第2页 / 共30页
《易语言动画支持库教程》_第3页
第3页 / 共30页
《易语言动画支持库教程》_第4页
第4页 / 共30页
《易语言动画支持库教程》_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《易语言动画支持库教程》》由会员分享,可在线阅读,更多相关《《易语言动画支持库教程》(30页珍藏版)》请在金锄头文库上搜索。

1、大连大有吴涛易语言软件开发有限公司 http:/ 版权所有易语言动画支持库教程(2007年12月第3版)目 录目 录1前 言2一动画框支持库简介2二动画物体属性和相关命令31不关联性42文字类属性43标识控制54图片属性55调色76缩放与角度77生存时间78声音控制79允许碰撞与类型值810层次911相关方法10三动画框组件方法命令111创建类命令122键盘类方法命令123运动碰撞类方法命令134物体检查类方法命令165布局类方法命令186绘图类方法命令18四动画框组件事件191鼠标触发类事件192键盘触发类事件213碰撞触发类事件214移动触发类事件225自动控制类事件23五实用技巧24六一

2、个实例251新建一个易程序252放置组件263修改组件属性264编写控制代码27七例程清单29前 言易语言汉语编程环境已提供了多款多媒体工具和二维三维动画工具,目前支持动画图片、音乐播放支持、OPENGL、DX、D3D等制作,以及矢量动画框支持库等。2007年12月,易语言汉语编程环境中又增加了一个新的成员“动画框/动画物体”组件,这是一个2D图形动画引擎,可实现很多动画类软件的制作,譬如:中小学课件制作、2D游戏制作、动画界面风格制作等。一动画框支持库简介动画框支持库包含“动画框”和“动画物体”两个组件。动画框支持库本质是一个二维的动画引擎,可以完成如教学课件及游戏等的制作。实现了对图片的各

3、种管理,如图片与图片之间位置的重叠、碰撞、图片之间的层次、图片的位置、色调、透明度等等一切进行管理。动画引擎是根据课件及游戏等制作的需求而定制的。既然是引擎,那么它的有些功能就是自动完成的,而基本无需时钟组件的控制。如:提供了“自动前进”、“自动旋转”等方法命令。如果您的程序中基本控制部分使用到了时钟组件,笔者只能说,您还没有完全领会这个引擎的功能。动画引擎是简单的、易用的,一些图片的基本功能都提供,如放大缩小、旋转、透明等,还提供一些高级的技巧,如:自动前进、碰撞检测等。动画框支持库支持图片格式有:BMP、JPG、GIF(动画GIF文件)、ICO(图标)、CUR(鼠标指针),支持WAV和MI

4、DI声音播放。 大家需要忘记以前没有这个动画引擎之前的旧有思维习惯,重新思考实现的方法。如以前需要通过时钟控制的程序,现在是不需要时钟的,以前需要定位X和Y坐标的,现在也不需要了,因为有自动前进的功能。通过这个动画引擎,我们几乎可以用很少的命令就可以写一个动画程序,有的程序甚至只有两行命令,一个迷宫程序如下图中所示:两行代码如下:二动画物体属性和相关命令“动画物体”提供“动画框”组件的初始化数据。“动画物体”组件与“动画框”组件之间是不关联的,也就是没有连动性。一个“动画物体”组件可以创建多个各种不同的物体。一个程序中“动画物体”组件可以不用,但必须有一个“动画框”组件。一个程序中“动画框”组

5、件是必须的,而“动画物体”组件是可以不需要的。不需要时,可以直接通过“动画框.创建物体()”命令创建,产生标识ID,根据此ID号来修改相应属性就可以了。1不关联性此不关联性也可称为“脱钩”性,即我们创建一个物体(或可称之为精灵)时,需要先在“动画物体”的属性中设置好,再使用。因此说,“动画物体”组件仅仅是为了设计时的方便,让设计者可以看到有这样一个物体,最终由“动画框.创建物体()”命令创建。创建之后,不可以再通过改动“动画物体”组件的属性实现修改的目的,而必须通过“动画物体”组件的相关方法命令来修改。下面大家会看到两个例子的对照,一个采用了先设置动画物体后再创建物体,另一个是先创建物体后再使

6、用修改物体的方法实现创建。一个易程序中,除一个动画框组件外,也可以只有一个动画物体组件,用这一个组件可以创建不同的物体出来,如用一个动画物体就可以创建飞机、大炮、飞弹。但需要创建之前改动画物体的属性、或创建后用动画框的方法去实现。提供“动画物体”组件的目的是:在制作时可以直观看见物体的外形、效果等。2文字类属性动画物体有两种表现形式,一种是动画,一种是文字。两者是不能共存的。例1:新建一个易程序,在启动窗口中放一个“动画框”组件和一个“动画物体”组件,然后改“动画物体”组件的“文字”属性为“吃了吗?”,“字体属性”为“宋体、粗体、小四号字”,“文本颜色”属性改为“天蓝”。好了,这里大家试运行程

7、序,会发现什么也没有,这里需要在“_启动窗口_创建完毕”事件中写一些代码来加载这个动画物体。代码如下所示:好了,这里再运行,就可以发现窗口中已有动画物体显示出来了,如下图所示:为了对比,下面我们重新制作一个易程序。在一个新建的易程序中仅放一个“动画框”组件,直接进入“_启动窗口_创建完毕”事件,并写如下代码:运行后,大家可以看到,其运行的窗口界面效果与第一个例子是差不多的。再次重申,在上述例程中,如果通过“创建物体”命令已产生一个ID号后,就不能再通过改“动画物体”组件的属性来更改物体的状态了,而只能通过“动画框”的方法命令去更改。3标识控制上述中,大家可以看到,以上由于可以创建多个物体,因此

8、如何操作这些不同的物体呢?原来是通过创建时返回的标识值来具体进一步操作的。“动画框”组件的每一个方法的第一个参数就是“标识值”,因此只要取得标识值,就可以直接对含有此标识的物体进行操作了。本文中,“标识值”也称为ID。4图片属性动画物体的图片相关属性有:“图片”属性、“自动取透明色”属性、“透明色”属性、“播放动画”属性、“动画间隔时间”属性、“动画自动销毁”属性。动画物体的“图片”属性图片属性与文字属性不能共存。如果有文字属性的情况下,就只会显示文字,不显示图片,因此如果想要显示图片,就必须将文字属性清空。其他的属性也很简单,大家可以自己试一下,如:“自动取透明色”属性可以让某张图片变成透明

9、的,条件是左上角的点就是透明色。“透明色”属性指定上述不是自动状态时,指定一种透明色进行透明处理。“播放动画”属性指定GIF动画文件是否可以播放动画,为“假”就显示GIF动画的第一帧。“动画间隔时间”属性指定在每次播放GIF动画之间插入的间隔毫秒数。“动画自动销毁”属性指:如果所指定图片是GIF动画格式,则本属性指定当该GIF动画播放几次后自动销毁该物体。如果为0,表示一直播放。“动画自动销毁”属性例程参见“大炮打飞机”演示,程序中,炮弹每次只显示一次就销毁了。5调色“趋向色”属性与“趋向程度”属性是一对,当指定了“趋向色”属性后,再改变“趋向程度”属性,就可以将色彩向“趋向色”靠近,值从0-

10、100。“亮度”、“透明度”这些属性大家可以自己试试,应该不难了解,大家自己试吧,我就不出例程了。6缩放与角度“缩放比”属性控制放大与缩小的比例,比例精度是千分值,值为1000时为1:1比例。0度90度180度270度这里的角度是以向上为0度,右侧为90度,向下为180度,左侧为270度。如下图所示:“角度”属性可以控制前进的方向,但这个属性一般不在初始时使用,而是在动画框的“置角度”方法中使用。“旋转跟随”属性为“真”时,旋转角度时,图片也跟着转,如果此属性为“假”时,旋转角度变化时,图片还保持原有样子的不变。“翻转”属性有四种,大家可以自己试一下。7生存时间“生存时间”属性指:自物体被创建

11、后在动画框中的生存时间,当此时间达到后该物体将被自动销毁,单位为毫秒。0表示无限制。例如,新建一个易程序,放置一个动画框组件,再放置一个动画物体,并且设置其生存时间为2000毫秒,写动画物体创建到动画框组件中的代码,然后运行此程序,可以观察到2秒后,此动画物体就消失了。8声音控制“创建声音”和“销毁声音”属性可以让你加入一个声音资源。支持WAV和MIDI声音。“创建声音”属性指定当物体在动画框中被创建时播放的声音。按下 Del 键即可删除现行内容。“销毁声音”属性指定当物体在动画框中被销毁时播放的声音。按下 Del 键即可删除现行内容。“碰撞声音”属性指:如果允许碰撞,指定当物体向前移动碰撞到

12、其它物体时播放的声音。按下 Del 键即可删除现行内容。这三个属性可以实现比较自动化的功能,如“碰撞声音”属性作用时,当两个物体碰撞,就可以发出爆炸的声音来。例如:大炮打飞机程序中,飞机就带有销毁声音,这样当飞机被打中时,就会发出声音了。如下图所示:9允许碰撞与类型值两个动画物体之间产生碰撞的条件有以下五个:条件1:两个动画物体中图片的非透明部分叠加;条件2:两个物体的“层次”属性值相同,为同层次物体条件3:两个物体的“允许碰撞”属性都为真;条件4:两个物体的的“类型值”属性不相同;条件5:使用了“前进”或“自动前进”方法命令,及一个特例:“置物体位置” 的命令参数“是否进行碰撞检测”为“真”

13、时。以上条件虽然多了一些,但可以看到有些条件是自然完成的,有些是必备条件。如:条件1,是表示两个物体的图片如果有透明色,那么不透明色相交时就产生了碰撞事件,这是不需要我们去控制的,是引擎内部进行判断的。条件2,碰撞只可能在同层物体之间产生。默认条件下,处于0层次。层次的概念与PHOTOSHOP中图层一样,是显示的需要,及防止互相之间干扰。条件3,设置“允许碰撞”属性为“真”是大家必须要去设置此属性的。条件4:类型值的安排是因为有这种同种类的需求,如敌机就是同一个类型,互相之间是不会碰撞爆炸的,而我方飞机发射的子弹与敌机会发生碰撞爆炸。因此大家需要设置为不同的类型值。条件5:指定当物体向前移动后

14、与同层另外一个不同类型值物体相互交叠时是否启动碰撞处理机制,注意:1.物体是否被显示并不影响到碰撞处理,也就是说如果允许碰撞,即使物体被隐藏也会启动碰撞处理; 2.被碰撞到的物体必须也同时允许碰撞才会触发碰撞机制; 3.只有当物体进行前进动作时(“前进”或“自动前进”命令引发)才会进行碰撞检测,其它情况下不会去检测碰撞。注意:隐藏的物体(不可视)依然可以被碰撞到,这个特性很重要。譬如设计一个迷宫程序,可以用两个通道图,一个是漂亮复杂的不检查碰撞的被显示的图片,一个是单线简单的检查碰撞的不被显示的图片,这样就能达到很顺畅地在外面漂亮的图里面移动的目的。10层次“层次”属性指定物体在动画框中所处的

15、层次,值越小表示所处层次越低,显示越在后方,值越大表示所处层次越高,显示越在前方。分层次是为了分类管理,一个小游戏在合理安排类型值的情况下,可以不用本属性,但在大型复杂的层次中,可能就需要分层显示。例如:在一些RPG游戏中,当小人走到房子的后面时,前面就看不出来,这时我们可以说人物在后面的层次,房子是在前面的层次。通过例子对比一下显示的效果:当地球图片的层次为0,飞机的层次为1时,显示效果如下:当飞机图片的层次为0,地球的层次为1时,显示效果如下:大家可以看到,显示的叠加效果是不同的。11相关方法上述所有“动画物体”的属性,都可以用“动画框”的相关方法实现。列表如下:“动画物体”属性“动画框”相关方法(可视)显示/是否已显示(标记)置附加文本/取附加文本

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号