选择显示字体大小

flash游戏制作--考眼力

大家可能都玩过这样一种游戏,和朋友座在一起,面前摆三张扑克牌,一张是翻开的,你可以看到牌的内容,其它两张则是被翻过的,看不到具体是什么牌,然后由别人随意的快速交换三张牌,最后看谁能找到开始时翻开的牌,这就需要在交换牌的过程中仔细观察,也算是对你的眼力的考验吧。(本例的.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的一些帧设置了帧标签,可以达到明确当前帧作用的目的,所以在动画制作中推荐大家多使用帧标签,可以在一定程度上提高工作效率,具体的帧标签设置大家可以参考附带的源文件。

  最后发布游戏,就可以开始玩了,看看你的眼力是不是很好哦:)


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons