╋艺 镇╋╋网站网络|程序语言|Flash╋┣◇FLASH交流 → 石头剪刀布


  共有15561人关注过本帖树形打印复制链接

主题:石头剪刀布

帅哥哟,离线,有人找我吗?
乐魔舞
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 天之飞雪
等级:青蜂侠 帖子:1427 积分:11370 威望:0 精华:7 注册:2007/12/25 16:21:28
石头剪刀布  发帖心情 Post By:2007/12/28 [只看该作者]

一、实例说明 这是一个古老的游戏,几乎每个人小时候都玩过,现在用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重新开始”的具体做法是,在Up,Over,Down帧里写上“再战三百回合”的字样,在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等于随机数(0,1,2)加2(注) if (/:a == 4) { 判断如果/:a为4 /:com = /:com+1; 变量/:com加1 } 停止判断 if (/:a == 3) { 如果/:a为3 /:pla = /:pla+1; 变量/:pla加1 } 停止判断 tellTarget ("computer") { 告知名为computer的目标 gotoAndStop (/:a); 跳至computer目标的第/:a帧并停止 } 停止告知目标 tellTarget ("person") { 告知名为person的目标 gotoAndStop (2); 跳至person目标的第2帧并停止 } 停止告知 } 停止判断 } 程序结束 注:Random(3)的意思为由电脑自行从0,1,2三个数中产生一个随机数。 步骤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 库(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编制一个游戏程序,通过这个程序,能了解一些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重新开始”的具体做法是,在Up,Over,Down帧里写上“再战三百回合”的字样,在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等于随机数(0,1,2)加2(注) if (/:a == 4) { 判断如果/:a为4 /:com = /:com+1; 变量/:com加1 } 停止判断 if (/:a == 3) { 如果/:a为3 /:pla = /:pla+1; 变量/:pla加1 } 停止判断 tellTarget ("computer") { 告知名为computer的目标 gotoAndStop (/:a); 跳至computer目标的第/:a帧并停止 } 停止告知目标 tellTarget ("person") { 告知名为person的目标 gotoAndStop (2); 跳至person目标的第2帧并停止 } 停止告知 } 停止判断 } 程序结束注:Random(3)的意思为由电脑自行从0,1,2三个数中产生一个随机数。步骤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 如果变量/: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 玩一玩
[此贴子已经被admin于2008-3-26 13:46:17编辑过]


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部