大家可能都玩过这样一种游戏,和朋友座在一起,面前摆三张扑克牌,一张是翻开的,你可以看到牌的内容,其它两张则是被翻过的,看不到具体是什么牌,然后由别人随意的快速交换三张牌,最后看谁能找到开始时翻开的牌,这就需要在交换牌的过程中仔细观察,也算是对你的眼力的考验吧。(本例的.swf和.fla文件请点击这里下载)
这次我们使用Flash来模拟一下这个游戏,换牌的过程由电脑完成,你只需要用眼睛盯住目标牌即可,游戏的主界面如图1所示:
图1
玩家只需要在开始界面中用鼠标点击一下,电脑就会开始快速的换牌了,游戏的制作原理其实比较简单,游戏的过程无非是纸牌的两两交换,我们只需要先将纸牌的交换过程做好,比如第一张和第二张交换,第二张和第三张交换,第一张和第三张交换,然后使用Random随机函数随机的调用这三个交换过程,就可以实现随机交换牌的功能。
下面我们来具体制作这个游戏。
1.首先需要制作图一中中间位置的目标牌,新建一个Graphic图形元件,命名为club,进入元件的编辑区后,使用钢笔工具绘制图2所示的梅花图形,然后填充上黑色:
图2
再新建一个Graphic图形元件命名为picture,进入元件的编辑区后,先选中矩形工具,然后打开工具箱下面的附加工具”圆角矩形半径设置”对话框,设置圆角矩形的半径为3,如图3所示:
图3
设置好后,在编辑区中绘制一个大小适中的圆角矩形,如图4所示:
图4
按照同样的方法绘制一个稍微小一点的圆角矩形,放到前一个矩形内,并将元件club放到两个矩形的正中间,如图5所示:
图5
2.制作好目标牌后,就需要制作纸牌的背面了,新建一个Graphic图形元件,命名为card,进入元件的编辑区后,还是按照上面一样的方法绘制两个套在一起的圆角矩形,里面那个矩形的填充色设置按照图6所示设置即可:
图6
最后效果如图7所示:
图7
再新建一个Movie clip影片剪辑元件,命名为cards,进入元件编辑区后,添加三个图层,每一层都放置一个card对象,并将其从左到右排列好,如图8所示:
图8
3.所需要的纸牌制作好后,就需要制作纸牌的交换过程了,因为游戏中一共有三张纸牌,所以我们只需要制作三个不同的交换效果,分别为1和2,1和3,2和3交换,这三个交换过程的制作方法完全相同,这里只讲解1和2交换的制作方法,其它两个交换过程类似。
新建一个Movie clip影片剪辑元件,命名为swap12,进入元件的编辑区后,建立四个图层,在layer3,layer2,layer1中从左到右放置三个card对象,将其排列好,然后在四个图层的第10祯分别插入关键帧,在第10桢处,将纸牌1和2交换一个位置,分别在layer2和layer3中创建Motion运动过渡动画,这样就实现了1和2的交换效果,最后在layer4的最后一祯添加如下Action动作脚本:
tellTarget ("_level0") {
gotoAndPlay(12);
}
最后的时间线如图9所示:
图9
按照同样的方法制作其它两个交换过程,swap13和swap23.
4.游戏中需要使用鼠标点击纸牌来开始游戏和在最后确定目标牌,所以还需要制作一个隐形按钮,新建一个Button按钮元件,命名为invisible,在最后的hit桢绘制一个长矩形即可。
5.回到主场景,设置舞台大小为320px*160px,背景色为白色。在主场景中添加三个图层,从下到上分别命名为cards,button和actions.
6.将元件invisible隐形按钮放到图层button中,然后将时间线延伸到第6祯,在第46桢插入一个关键祯,同样将隐形按钮拖到舞台中,最后将时间线延伸到第62祯,如图10所示:
图10
7.回到图层cards,在第7桢插入一个关键祯,将元件card分两次拖到舞台中,并调整位置到舞台的两侧,然后将元件picture放置到舞台正中间,作为游戏的开始画面,如图11所示;
图11
最后将时间线延伸到第11祯。
8.在第12祯插入一个空白关键帧,将元件cars放到舞台上,在第18帧插入一个空白关键帧,将元件swap12拖到舞台中,在第23帧插入一个空白关键帧,将元件swap13放到舞台中,同样的在第32帧插入一个空白关键帧,将元件swap23拖到舞台中。
9.第8步其实设置的是游戏中交换纸牌的过程,将三个交换过程插入到影片中,然后由程序随机的调用。最后需要玩家来判断目标牌的位置,所以在第40帧插入一个空白关键帧,将元件card分三次拖进舞台,从左到右排列好,因为这时候玩家需要通过鼠标点击来作出自己的判断,所以需要将这三个MC转换成Button,方法很简单,只需要在属性面板的元件类型下拉列表中选择Button即可,如图12所示:
图12
10.最后需要制作目标牌的三个不同位置,以便和玩家所做判断进行比较,在第46帧插入一个空白关键帧,将元件pictrue放到舞台的最左边,然后分两次将元件card放进舞台,排列其位置到舞台靠右的地方,如图13所示:
图13
11.按照相同的方法,分别在第52和第58帧设置目标牌的其它两个位置,分别如图14和图15所示:
图14
图15
12.最后的任务就是给游戏设置Action动作脚本来控制游戏了。在图层actions的第7帧添加如下AS:
/:pos1 = "0";
/:pos2 = "1";
/:pos3 = "0";
/:count = Number(int(random(5)))+6;
//初始化3个变量,count取一个随机数,范围在4到10之间的整数
stop();
//将游戏停止在这里,直到用户响应
图层actions的第12帧添加如下AS:
stop();
//将游戏停止在此帧
if (Number(/:count)<>0) {
/:count = /:count-1;
//如果随机数count的值不等于0,count的值减1
ran = random(3);
//设置随机变量ran,取值范围在0到2之间
if (Number(ran) == 0) {
gotoAndStop("swap12");
//如果随机数ran的值等于0,则执行swap12这帧,交换1和2
} else if (Number(ran) == 1) {
gotoAndStop("swap13");
//如果随机数ran的值等于1,则执行swap13这帧,交换1和3
} else {
gotoAndStop("swap23");
//如果随机数ran的值等于2,则执行swap23这帧,交换3和2
}
} else {
gotoAndStop("guess");
//如果随机数count的值等于0,执行guess帧,交换结束,等待玩家进行判断
}
图层actions的第18帧添加如下AS:
temp = /:pos2;
/:pos2 = /:pos1;
/:pos1 = temp;
图层actions的第25帧添加如下AS:
temp = /:pos3;
/:pos3 = /:pos1;
/:pos1 = temp;
图层actions的第32帧添加如下AS:
temp = /:pos2;
/:pos2 = /:pos3;
/:pos3 = temp;
//上面三帧都是分别设置三个变量
13.回到图层card的第7帧,给最左边的纸牌添加如下AS:
on (release) {
if (Number(pos1) == 1) {
gotoAndStop("pos1");
} else if (Number(pos2) == 1) {
gotoAndStop("pos2");
} else {
gotoAndStop("pos3");
}
}
//根据变量pos1.pos2,pos3的不同值,跳到相应的帧
给中间的纸牌添加AS:
on (release) {
gotoAndPlay("shuffle");
}
//如果点此纸牌,则开始游戏
最后的时间线如图16所示:
图16
在上面action编写过程中,为了简化编写过程,我们给图层actions的一些帧设置了帧标签,可以达到明确当前帧作用的目的,所以在动画制作中推荐大家多使用帧标签,可以在一定程度上提高工作效率,具体的帧标签设置大家可以参考附带的源文件。
最后发布游戏,就可以开始玩了,看看你的眼力是不是很好哦:)
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 没有查询到任何记录。
最新文章
Flash CS4基础入门
如何在Flash中打开一个定制的浏览器新窗口?学习ActionScript 3.0的6个好处几个小技巧精简Flash文件体积在Flash动画中添加“加为收藏”和“设为首页
人气排行 Flash游戏制作--小熊拼图用Flash实现几种镜头效果Flash制作动画知识:遮罩Flash如何做鼠标指针样式Flash制作环形文字Flash制作声情并茂的电子相册实例讲解flashMTV制作全过程(3)鼠标效果系列教程:游动的鱼
查看所有0条评论>>