拼图游戏是广受欢迎的一种智力游戏,它的变化多端,难度不一,让人百玩不厌。这里我将介绍将传统的拼图移植到FLASH中的方法,从中您不仅能学到ACTION SCRIPT的一些用法,也能了解一些FLASH游戏开发的思路与方法。那么,下面我们就开始吧!
完善功能
第四步:完善功能
经过前3步的操作,我们已经实现了一个拼图游戏的基本部分,但这并不是一个完整的游戏。它还应该实现判断游戏是否结束甚至是在一定时间内是否结束;每次游戏开始的时候图块的位置应该是随机的,这样才不会降低游戏的难度。
那么首先在第一桢加入一段程序,使得图块更够在一定范围内随机摆放。由于flash本身提供随即函数,我们只需要建一个循环以次将图块设定坐标即可,具体程序如下:
n = 1; //设置初始变量
do { //开始循环
setProperty ("part" add n, _x, random (400)); //使图块的x坐标随机定在400以内的数值
setProperty ("part" add n, _y, random (280)); //使图块的y坐标随机定在280以内的数值
n = n+1;} //
while (n<=16); //在总数量内循环
下图即开始游戏时的画面,
左半部为图块区,右半部为拼图区。
下面我们在第二桢加入程序,由来判断是否所有的图块都拼好,拼好则跳转到胜利画面,原理很简单,我们只需要判断每一块图的坐标值是否和他相对的底图的坐标相同即可。按照上一期我们所讲的起名规律,如果图块的名字为part1则它对应的底图的名字为bg1,因此我们只要检测part1与bg1的坐标值相同,即可判断第一图块已经拼好,以此类推,如果当所有的图块都放在了正确的位置则游戏胜利。具体程序如下:
a = "1"; //设置块数初始变量
i = "0"; //设置正确个数初始变量
while (Number(a)<=16) { //开始循环
if ((getProperty("/" add a add "mc",_x)==Getproperty("/" add a add "bg",_x)) and (getProperty("/" add a add "mc",_y)==Getproperty("/" add a add "bg",_y))) { //检测图块的x坐标和y坐标是否相同
i = Number(i)+1; //坐标相同正确数增加1
if (Number(i) == 16) { //当正确数等于总个数的时候
gotoAndStop ("ok"); //跳转到标号为ok的关键桢
}
}
a = Number(a)+1;
}
然后我们在第三桢加入一句action:goto And Play (2);这样以来,程序就会不停的检测时候所有的图块都已经拼好。我们在下一桢起一个标号为:ok。然后在画面里制作一个胜利字样。下图即游戏结束时的画面。

网友评论