本游戏教程涉及自定义鼠标,鼠标跟随,鼠标事件,简单动画,文本框等方面,最终成品如下,
游戏难度变化:
如果你感兴趣,先把所有源文件下载,然后对照文件看以下教程,其实光看源文件已经非常清楚了,因为我大量注释,而且分步骤写代码,但还是想罗嗦几句,力求一看就懂(函数的使用可按F1查看帮助):
第一步,自定义鼠标:
CTRL+F8加入新元件,画个魔法棒,做三帧,第一帧为普通状态,第二、三帧为按下状态,若按下状态只有一帧,动画太快。在库中(CTRL+L打开库)右键单击该元件,选择链接,在对话框中选定“为ActionScript导出”,然后在标识符输入一个名字,我的是mouse。这样attachMovie就能运行时导入影片魔法棒,创建鼠标侦听事件,做到棒子代替原鼠标图案。
第一步:自定义鼠标效果.rar
第二步,鼠标追随:
加入新元件(CTRL+F8),800%视角画个小星星,元件命名为flashStar,再加入一个manyStar,将flashStar拖入manyStar,同时flashStar的属性的实例名称命名为mc0,它就是追随中的带头大哥,在manyStar里写代码,先复制一群小弟,后一个追着前一个跑就行了。然后将manyStar拖入场景,命名为mc,在代码处加入开始确定mc位置的代码就好了。简单吧,关于命名的东东我往后不详细说了。
第二步:鼠标追随效果.rar
第三步,变化的星星:
修改flashStar,让它做变色动画,这样我们的星星就能边追随边变色,再搞个revolutionStar,将flashStar加入其中,让flashStar做旋转动画,接着在manyStar中把原来的flashStar交换成revolutionStar(在属性框中交换),星星可以追随、变色加旋转了!这样我们完成了三个影片的嵌套使用,manyStar套revolutionStar套flashStar,关于嵌套我又不多说了。做个moveStar,套上revolutionStar,做引导线运动,引导线就随便画吧,再将manyStar中的revolutionStar交换成moveStar。
第三步:变化的星星效果.rar
第四步,一堆星星:
做randomStar套moveStar随机决定其位置,再交换,做个allStar套randomStar将其复制出六个,旋转它们角度到六个方向上,再交换。好了群星追随全部完工。
第四步:一堆星星效果.rar
第五步,物体下落:
先做个函数randRange用于获取两数间的随机整数,以后多处用到。做个圆形元件第一帧停止,我的之所以持续多几帧,是为了将来设置帧标签时好看。创建this.onEnterFrame事件,这个就是游戏的主循环,意思是this(这里指主场景)进入帧后就不停的干。然后象第一步那样运行时导入圆形,设置属性,建立被导入圆形的onEnterFrame事件,这里是指这个圆形进入帧后就不停的干直到它被删除,事件中的this就指这个圆形而不是前面的主场景。通过改变_y属性做到下落,超出范围就删除。用个randRange来决定是否出现新物体下落,不然会有一堆圆形出现。还要注意的是我用了depth变量决定新物体的深度,并使它保持在一定范围内,而没有用getNextHighestDepth()方法,之所以这么做是为了保持鼠标图案的5000深度最高,这样物体不会覆盖到棒子的上面。但大家可以发现星星是在物体下面的,就是因为它的深度不够,大家可以想办法修改。
第五步:物体下落效果.rar
第六步,多种物体:
加入多几种图形元件,在导入时随机决定种类、属性,with的用法值得注意下,这可以减少输入量。另外属性中有个叫speed的,它不是内置属性,是我们自己加的,FLASH允许不声明就使用变量,其实这个speed是新建依附于target的变量,各个导入元件的speed是不同的,所以物体以不同速度下落。
第六步:多种物体效果.rar
第七步,点击事件:
加入blast元件先不画东西,再修改各个物体元件,在他们后加入空白关键帧,设置帧标签(点帧看属性框)为hit,加入blast。这是为了做出点击后的爆炸效果,blast的动画就自己画了,就是做些碎片朝不同方向飞开就行了。回主代码处创建target的onPress事件,就是点这个元件后要做的事,然后this.gotoAndStop("hit")。要注意的是一定要用this而不能用target,虽然创建时target和this指的是同一个东西,但随后的运行target是会变的,而this一直都指向它的创建者。
第七步:点击事件效果.rar
第八步,得分框:
这个主要自己看了,F1看帮助是好的学习方法,除Date和createTextField外就是加个score变量,在被点击时加分。
第八步:得分框效果.rar
第九步,游戏难度变化:
加入level变量,和两个关于level变化提示的元件,修改链接。score在物体超界时减少,level在updateStats()中根据score更新,再根据level变化情况导入相应levelDown或levelUp元件,同时物体下降速度和机率都根据level变化。当level到10后randRange(0, 30 - level * 2) == 11永远为假,即创建新物体行为停止,同时帧到第三,显示Win字样。至此,游戏基本完工,再改改细节,比如画布大小,背景色,帧数,在鼠标侦听onMouseMove中加入updateAfterEvent();使移动更顺畅,改改Bug,根据自己喜爱修改level,speed,score等,或加入自己的东西,但还有!
第十步,自己搞:
重看源代码,先理解游戏整体结构,再看细节实现,充分理解后自己动起手来吧!
全部源文件.rar