朋友,想测验一下你的记忆力吗?不用去找那些枯燥的试题来烦自己,我们可以用Flash MX来制作一个有趣的记忆力测验小游戏,既可娱乐自己,又可考察自己的记忆力。
此记忆游戏如图所示,游戏界面虽然简单,但要玩好却不容易,除非你有较好的记忆力。它的玩法大家可能都比较熟悉,游戏中共有12个相同的圆盘,每个圆盘下面都隐藏着一幅图案,12幅图案两两相同共6对,而游戏的目的就是以最快的速度打开圆盘找完相同的图案。此游戏的设计思路是,当鼠标连续点击打开矩阵中的两个圆盘后,对前后显现的图案进行判断,如果图案相同就从矩阵中去除这两个图案及上面的圆盘,如果不同则用圆盘将图案重新覆盖,而这就考验了大家对各个图案位置的记忆力,只找准所有的6对图案后,游戏才算胜利。其图案显示和覆盖的效果制作起来很简单,使用Motion过渡动画就行了,而图案相同与否的判断是借助Action来进行的。
Flash记忆游戏(9s51.tif)
下面我们就来学习如何制作这个游戏,具体步骤如下(编者注:为了方便Flash初学者,此Flash游戏及其源文件可在http://www.pcdigest.com/download下载,大家可以直接通过修改.fla文件来快速打造具有自己风格的记忆游戏)。
1.我们先要准备6种不同的图案,它们可以任意寻找,不过最好用一些颜色和形状相似的图案,这样玩起来才有迷惑性,才能提高玩家的分辨难度,增强游戏趣味。在这里我们准备了如图所示的6种不同的图案,将它们导入Flash中,分别存为六个图形符号(Graphic)。
6种不同的图案(9s52.tif)
2.我们还要准备一个游戏中覆盖图案的圆盘图片,这个可以自己画,不过它的大小要稍大于上一步中我们所选用的图案,以便能将它们完全覆盖。把这张圆盘的图片导入Flash,将它存为按钮符号(Button)。
圆盘图(9s53.tif) 3.在游戏中,由于要显示每找出一对圆盘后所剩余的图案对数量,所以还需制作6个数字。如图,分别制作从1到6的图形符号(Graphic)。
6个不同的数字图(9s54.tif)
4.下面我们就要制作游戏中圆盘和图案的动画效果了,这些动画主要对应玩家的各种鼠标操作,如选中、点击等。其中六对图案的动画效果制作方法是相同的,所以我们在此仅讲其中一对的制作。
首先,在Flash中新建一个movie clip符号,命名为balls1。在符号的编辑状态下新建两个图层,在第一个图层的第7帧到第11帧建立圆盘由有到无的motion动画效果,在第21帧到第25帧建立圆盘由无到有的Motion动画效果。在第二个图层中的第7帧到第12帧建立一个图案由无到有的动画效果,从第13帧到第20帧建立一个图案的放大效果,从第20帧到第25帧建立一个图案由有到无的motion效果。
动画效果的时间线 (9s56.tif)
使用相同的方法再建两个新图层,照上述步骤制作出完全相同的motion效果,不过圆盘和图案的位置要与上面的不同(位置大家自定义),最好在4×3的矩形范围内。
4×3的矩形范围(9s55.tif)
然后,我们要给动画添加Action。
新建一个图层,命名为timeline,此游戏所有的Action都集中在此图层,方便编辑和修改。
在第1帧添加as为gotoAndStop(5);
//跳到第5帧,后面我们要在第5帧添加“stop();”,使游戏一开始处于停止状态。
在第2帧添加as为gotoAndStop(3);
在第3帧添加as为stop();
在第4帧添加as为gotoAndStop(3);
在第5帧添加as为 stop();
在第6帧添加as为gotoAndStop(5);
分别在第12和第31帧添加as为stop();
//游戏运行到此帧时停止播放。
tellTarget ("../balls3")
tellTarget ("../balls4")
tellTarget ("../balls5")
tellTarget ("../balls6")
tellTarget ("../balls7")
//先分别指定“主场景”中的balls3到ball7五个Movie clip,然后分别运行每个Movie clip当前帧的下一帧。
分别在第13和第32帧插入关键帧,然后添加如下Action。
play();
//影片运行到此帧时继续播放。
tellTarget ("../balls3")
tellTarget ("../balls4")
tellTarget ("../balls5")
tellTarget ("../balls6")
tellTarget ("../balls7")
//分别指定主场景中的balls3到ball7五个Movie clip,运行每个Movie clip当前帧的下一帧。
分别在第25和第44帧添加as为gotoAndStop(5);
分别在第58和第77帧添加如下as。
tellTarget ("../balls8")
//balls8是Mc num的实例名,用来控制游戏剩余圆盘对数的变化,当跳到下一帧则数字减1。
分别在第63和第82帧添加as为gotoAndStop(3);
上面所有as的所在帧并不是随意添加的,而是与圆盘及图案所有Motion的所在帧相对应,这样才能在游戏中调用不同的Motion。
最后,按照上面的方法,再制作从balls2到balls6的其它5个类似的Movie clip影片剪辑,不同之处是每对圆盘背后的图案要不相同。
5.在此我们要制作记数变化的效果。首先新建一个Movie clip影片剪辑,插入六个关键帧,分别将前面做好的6个数字符号按逆续放到第1到第6关键帧中(第1关键帧放数字6……第6关键帧放数字1)。然后新增一个图层,命名为timeline,同样插入六个连续的关键帧,并给每个关键帧都添加Action为“stop();”,让影片运行到每帧都停下来。
记数变化的时间线(9s57.tif)
6.下面要制作的是游戏的主控制Movie clip影片剪辑,此影片剪辑用于总体控制。新建一个Movie clip影片剪辑,命名为“主电影”。在进入Movie clip影片剪辑的编辑状态后,分别新建六个图层,把前面做好的balls1到balls6六个图案对分别放到这六个图层之中,排列成4×3的矩形方阵。
4×3的矩形方阵(9s58.tif)
再新建一个图层,将符号num拖到编辑区上合适的位置,在其第一帧添加Action为“play();”,最后将所有图层的时间线延长到第7帧。
总体控制的时间线(9s59.tif)
7.现在进行最后的任务——布置主场景。很简单,只须将Movie clip影片剪辑“主电影”拖到主场景中合适的位置就可以了,然后存盘、运行测试并导出为.swf文件。
测试游戏(9s10.tif)
到此为止,一个简单而有趣的Flash记忆力游戏就做好了,如果大家有兴趣,还可以在它的基础上增加一些功能,如增加游戏中图案对的数量、增加记时或限时功能等。先不多说了,快开始游戏吧!
|