中华网通行证
用户名 密码

Flash MX 2004精彩实例

之石头剪子布
中华网科技 http://tech.china.com
进入BBS】【进入聊天室】【浏览字号: 】【关闭窗口

石头、剪子、布

一、实例说明

这是一个古老的游戏,几乎每个人小时候都玩过,现在用Flash编制一个游戏程序,通过这个程序,能了解一些Action的高级应用。

二、有关知识

绘制实例,Action编程,按钮的制作及设置,变量。

三、制作过程

步骤1:打开Flash,建立一个新文件。

步骤2:从菜单栏中选择插入>添加符号(Insert>New Symbol),在出现的对话框中选图像(Graphic),命名为“gr背景”,用绘图工具在工作区画一个背景图形,如图1所示。

提示:gr表示图像Graphic的意思,这样可以避免重名的麻烦,使用者虽然可以随意命名,但养成一个习惯有利于提高效率。

步骤3:重复步骤2,分别制作的三个图像,命名为“gr石头”、“gr剪子”、“gr布”。 如图2所示。

1 背景

2 表示石头、剪子、布的三个图像

步骤4:从菜单栏中选择插入>添加符号(Insert>New Symbol),在出现的对话框中选按钮(Button),命名为“bu石头”,出现按钮编辑窗口后,从菜单栏中选择窗口>库(Window>libuary),在库中将“gr石头拖到舞台,这时Up帧下出现一个黑点,表示Up帧为关键帧,然后再添加其他图形,比如给图像加一个小框,下面写上文字,以使这个按钮看起来更漂亮些;鼠标单击Over帧后按F6键,插入关键帧,Over表示鼠标停留在按钮上时所显示的图像,将图形的白色外框换成灰色;设置Down为关键帧,Down表示鼠标按下按钮时所显示的图像,将白色的字填上红色;设置Hit为关键帧,Hit表示按钮的响应范围,如3所示。

3 按钮“bu石头”的制作

步骤5:按步骤4的方法将“gr剪子”、“gr布”分别制成按钮“bu剪子”、“bu布”。

步骤6:从菜单栏中选择 插入>添加符号(Insert>New Symbol),在出现的对话框中选电影片段(Movie Clip),命名为“MC石剪布”,该Movie Clip共设4帧,先设第1帧为关键帧,注意,第1帧中不放置任何对象,在以后的3个帧中分别放置“gr石头”、“gr剪子”、“gr布”,右击第1帧,在Action面板选中Actions/Movie Control/stop

步骤7:再做两个按钮“bu重新开始”和“bu结束”,它们的功能是用来在游戏结束后,用来选择重新开始游戏和退出游戏。其中“bu重新开始的具体做法是,在UpOverDown帧里写上“再战三百回合”的字样,在Hit帧里指定响应范围。如图4所示。

 

4 按钮“重新开始”的制作

bu结束”可以用同样的方法制作。

步骤8:回到主场景,将Layer1改名为“背景”,设置第1帧为空帧,第2帧为关键帧,并将图片“gr背景放置在“背景”层的第2帧里。

注:以后放入的各元素均为所在层的第2帧。

步骤9:新建名为“按钮”的层,将按钮“bu石头”、 bu剪子”、 bu布”放置在这个层里。

步骤10:新建命名为“动画” 的层,将“mc石剪布”重复两次放置在这个层里,如图5所示。

5 按钮在背景中的位置

因为“mc石剪布”的第1帧是空的,所以放置时只能看到一个小圆点,图中的两个小白点就是被放置两次“mc石剪布”。

步骤11:选中左边的“mc石剪布”,在属性面板将其命名为player,在Color下拉框里选色调(Tint,将颜色值设为#FFFF00;同样的方法设置右边“mc石剪布”的实例名为computer ,在Color下拉框里选色调(Tint,将颜色值设为#FF0000 如图6所示。

6给场景中的电影命名

    步骤12:选择名为computer的“mc石剪布”,执行修改>变形>水平翻转(Modify>Transform>Flip Horizontal)。

    步骤13:新建图层,命名为“变量”,单击文字工具 ,在图7所示的地方加入文字框,并在文字框内输入两个数字:00,设置好字体、字号、颜色。

7 加入文字框

    步骤14:在文字可输入的情况下,鼠标右击文字框,在弹出的菜单中选择面板>文字选项(Panels>Text options,具体设置如图8所示。

8 文字框的设置

步骤15:分别在“玩家胜”、“电脑胜”后加入文字框,设置同上,注意把“玩家胜”后文字框的属性(Var)设置为pla,“电脑胜”后文字框的属性(Var)设置为com。在设置文字框时注意文字框宽度要能容纳两个数字。如图9所示。

9“电脑胜”字段属性的设置

    步骤16:鼠标右击“bu石头”,在Action面板输入如下语句:

语句

解释:

on (press) {

当鼠标按下时执行以下命令

    /:totalplay = /:totalplay+1;

/:totalplay变量加1

    if (/:totalplay == 30) {

判断如果/:totalplay变量为3时执行以下命令

        gotoAndStop (5);

跳至第5帧并停止播放

    } else {

如果/:totalplay不为30,执行以下命令

        /:a = random(3)+2;

变量/:a等于随机数(012)加2(注)

        if (/:a == 4) {

判断如果/:a4

            /:com = /:com+1;

变量/:com1

        }

停止判断

        if (/:a == 3) {

如果/:a3

            /:pla = /:pla+1;

变量/:pla1

        }

停止判断

        tellTarget ("computer") {

告知名为computer的目标

            gotoAndStop (/:a);

跳至computer目标的第/:a帧并停止

        }

停止告知目标

        tellTarget ("person") {

告知名为person的目标

            gotoAndStop (2);

跳至person目标的第2帧并停止

        }

停止告知

    }

停止判断

}

程序结束

注:Random3)的意思为由电脑自行从012三个数中产生一个随机数。

步骤17:鼠标右击“bu剪子”,在Action面板输入如下语句:

on (press) {

    /:totalplay = /:totalplay+1;

    if (/:totalplay == 30) {

        gotoAndStop (5);

    } else {

        /:a = random(3)+2;

        if (/:a == 2) {

            /:com = /:com+1;

        }

        if (/:a == 4) {

            /:pla = /:pla+1;

        }

        tellTarget ("computer") {

            gotoAndStop (/:a);

        }

        tellTarget ("person") {

            gotoAndStop (3);

        }

    }

}

    步骤18:鼠标右击“bu布”,在Action面板输入如下语句:

on (press) {

    /:totalplay = /:totalplay+1;

    if (/:totalplay == 30) {

        gotoAndStop (5);

    } else {

        /:a = random(3)+2;

        if (/:a == 3) {

            /:com = /:com+1;

        }

        if (/:a == 2) {

            /:pla = /:pla+1;

        }

        tellTarget ("computer") {

            gotoAndStop (/:a);

        }

        tellTarget ("person") {

            gotoAndStop (4);

        }

    }

}

    步骤19:建立新层,命名为“结果”,设置“结果”层的第5帧为关键帧,双击第5帧,在Actions面板中输入以下语句:

语句:

解释:

if (/:pla > /:com) {

如果变量/:pla大于变量/:com

    gotoAndStop (6);

跳至第6帧并停止

} else if (/:pla </:com) {

如果变量/:pla小于变量/:com

    gotoAndStop (7);

跳至第7帧并停止

}

停止判断

if (/:pla == /:com) {

如果变量/:pla等于变量/:com

    gotoAndStop (8);

跳至第8帧并停止

}

停止判断

    步骤20:在编程时,设置为游戏结束后如果玩家获胜则跳转到第6帧,可按图10所示设置,图中两处00为文字框,具体设置同步骤15,左边文字框属性(Var)为“pla”,右边文字框属性(Var)为“com”。打开窗口>库(Window>Library),把“bu重新开始和“bu退出”放置在页面的右下角,右击“bu重新开始”,在Actions面板中输入以下语句:

 on (press) {

    gotoAndPlay (1);

}

    在“bu退出”的Actions面板中输入:

on (release) {

    fscommand ("quit", "");

}

10 玩家获胜帧

    步骤22:设置“结果”层的第7帧为关键帧,在编程时,设置为游戏结束后如果电脑获胜则跳转到第7帧,可按图11所示设置,其他设置同上。

11 电脑获胜帧

    步骤23:设置“结果”层的第8帧为关键帧,在编程时,设置为游戏结束后如果战平则跳转到第8帧,可按图12所示设置,其他设置同上。

12 双方战平帧

    步骤24:设置“结果”层的第1帧为关键帧,双击第1帧,在Actions面板中输入以下语句:

/:pla = 0;

/:com = 0;

/:totalplay = 0;

步骤25:设置“结果”层的第2帧为关键帧,双击第2帧,在Actions面板中加入stop语句。

好了,现在可以用菜单栏中文件>导出影片(File>Export Movie),如图13所示。

13 玩一玩


 
来源:宇风多媒体
相关教程:

Flash MX 2004精彩实例 之放大镜效果
Flash MX 2004精彩实例 之大变活人
Flash MX 2004精彩实例 之从前有座山
Flash MX 2004精彩实例 之石头剪子布
Flash MX 2004精彩实例 之填色与变色
Flash MX 2004精彩实例 之动画片的制作
Flash MX 2004精彩实例 之礼花朵朵
Flash MX 2004精彩实例 之QQ菜单

Flash MX 2004精彩实例 之飘逸的头发
Flash MX 2004精彩实例 之旋转的地球


中华网搜索
站内搜索
全网搜索


科技频道主编信箱