Flash游戏开发(四)

上传人:痛*** 文档编号:168825890 上传时间:2022-11-12 格式:DOC 页数:57 大小:901.50KB
收藏 版权申诉 举报 下载
Flash游戏开发(四)_第1页
第1页 / 共57页
Flash游戏开发(四)_第2页
第2页 / 共57页
Flash游戏开发(四)_第3页
第3页 / 共57页
资源描述:

《Flash游戏开发(四)》由会员分享,可在线阅读,更多相关《Flash游戏开发(四)(57页珍藏版)》请在装配图网上搜索。

1、第4章 益智类的游戏4.1 井字过三关游戏(1)游戏说明这是一个益智型的小游戏,通过一个“井”字形的棋子摆设,用鼠标单击“井”字的空位,谁先排成一字线就算赢,它可以和传统的五子棋游戏相媲美。本游戏编程难度并不是很大,读者可以自行打开源代码进行参考。游戏的场景如图4-1所示。图4-1特效集合的展示设计技巧(1)游戏过程中为了响应鼠标单击,要把“井”字的9个空位全部放置上影片剪辑,并分别命名。(2)当鼠标单击空位的时候告知相应的对象,实现智能的记忆和计算,主要应用到了如下的命令:数组set()最简单的表达式应用,实现事件的判断,并赋予值。Telltarget告知命令的应用。实现当鼠标触发相应的区域

2、时,相应的影片剪辑执行动作。制作步骤1主要游戏元件的制作(1)启动FlashMX2004,单击“属性”面板中的“大小”按钮,设置影片宽为550px,高为400px,背景颜色为白色,播放速度帧频为12fps,如图4-2所示。图4-2设置影片属性(2)把“图层1”命名为“背景”,执行菜单栏“插入”|“新建元件”命令,新建一个图形元件,命名为“背景”,单击“确定”按钮,进入编辑区。单击工具箱中的“线条工具”按钮,在“属性”面板中设置大小为5.75px,格式为虚线,自制一个背景,如一个大的“井”字,如图4-3所示。回到场景中,在第16帧处按F5键插入相同帧。图4-3绘制一个背景(3)执行菜单栏“插入”

3、|“新建元件”命令,新增两个图形元件,它们是游戏双方棋子的表示符号,分别命名为“圆圈”和“打叉”,通过工具箱中的“椭圆工具”按钮和“线条工具”按钮来完成,其大小及格式与步骤(2)中设置的相同,其绘制的效果如图4-4所示。图4-4绘制双方的表示符号(4)按Ctrl+F8快捷键,新增一个影片剪辑,名称为“MC”这是制作产生“圆圈”或“打叉”的影片剪辑,在第2帧处按F6键插入关键帧,把“圆圈”元件从“库”面板中拖入编辑区。在第3帧插入关键帧,把第3帧中的“圆圈”元件删除后,将“打叉”元件从“库”面板中拖进编辑区,如图4-5所示。(5)单击返回到主场景,新增一图层并命名为“组件控制”,把MC影片剪辑分

4、别放进“井”的9个位置,由于MC影片剪辑的第1帧没有图形,不会显示有图像,所以将场景1内的9个MC影片剪辑的实体命名为“ox1”,“ox2”,“ox3”,.,“ox9”,排列的顺序如图4-6所示。图4-5制作MC影片剪辑图4-6MC的排列示意图(6)执行菜单栏“插入”|“新建元件”命令,新增一个按钮元件用来实现鼠标与场景的交互作用,名称为“button”,这个按钮没有图像,所以我们只在“点击”帧画上一个适当大小的矩形(104px82px),如图4-7所示。图4-7制作“点击”区(7)双击“库”面板中的MC影片剪辑,进入MC编辑区,把button按钮拉到第1帧处,返回场景1中,这时的主场景如图4

5、-8所示。图4-8排列的MC场景4.1井字过三关(2)2智能命令的加入(1)接下来开始游戏的编程工作。首先进入MC影片剪辑的编辑页面,在时间轴上单击“插入图层”按钮新建一个图层,命名为stop层,在第1帧加入停止命令“stop();”。(2)单击MC编辑区内的button按钮,并在“动作-按钮”面板中输入下面的语句:on(release)gotoAndStop(2);/当我方按下鼠标后,显示第2帧的“圆圈”图形set(_root.+_name,1);/记录这格已经被画了“圆圈”,告诉计算机不可把棋子放在这一格,通过set();(设置的参数)可以来完成,因为在变量名称中部分使用了其他的变量_na

6、me(名),所以用表达式(_root.+_name,)来表示_root.winox1,_root.winox2,而这段语句描述的结果则会变成:_root.ox1=1,_root.ox2=1,.,这是Flash中表现“数组”最简单的方式再用相同语法设定一阵式,用来记录我方下过哪些子:set(_root.win+_name,1);/如果_root.winox1=1、root.winox2=1、_root.winox3=1表示这3格都是圆圈,我们便胜利了,设定了一个_root.win+_name,这个数组可以表现为如下9个变量:_root.winox1_root.winox2_root.winox3

7、_root.winox4_root.winox5_root.winox6_root.winox7_root.winox8_root.winox9胜利的条件是,任何一种图形组合连成一线。3个变数要是1,3个1的和即等于3,所以判断方式是,哪一种组合总和等于3。把判断式放进condition中,用or连起来,因为只要其中一种成立便可以了,程序如下(即加入动作):if(Number(_root.winox1)+Number(_root.winox2)+Number(_root.winox3)=3orNumber(_root.winox4)+Number(_root.winox5)+Number(_r

8、oot.winox6)=3orNumber(_root.winox7)+Number(_root.winox8)+Number(_root.winox9)=3orNumber(_root.winox1)+Number(_root.winox4)+Number(_root.winox7)=3orNumber(_root.winox2)+Number(_root.winox5)+Number(_root.winox8)=3orNumber(_root.winox3)+Number(_root.winox6)+Number(_root.winox9)=3orNumber(_root.winox1)+

9、Number(_root.winox5)+Number(_root.winox9)=3orNumber(_root.winox3)+Number(_root.winox5)+Number(_root.winox7)=3)/当满足胜利条件便进入一个名为“win”的帧,因为该帧位于场景1的时间轴中,所以要先加入tellTarget命令,target设为_root,即主编辑区,再加入如下跳播命令,帧标签设置为wintellTarget(_root)gotoAndStop(win);最后我们还要制作计算机不进攻也不防守时放叉子的位置,程序代码为:if(_root.checkeq0)/先判断计算机是否放

10、过棋子,可以从_root.check是否为0得知for(_root.a=1;_root.a10;_root.a+)if(eval(_root.ox+_root.a)ne1)/_root.ox+_root.a可以是_root.ox1_root.ox9之间的变量,通过eval()得到该变量的值;经for的定义,配合_root.a由19的数值,只要找到哪一格是空的,就下在那一格tellTarget(_root.ox+_root.a)set(_root.ox+_root.a,1);/设定该格放过棋子set(_root.loseox+_root.a,1);gotoAndStop(3);break;/对方

11、已在其选定的地方放过棋子,再用break跳出for的循环所有计算机的动作,都要在我们下完子但还没胜利的时候发生。整个button按钮的程序代码如下:on(release)gotoAndStop(2);set(_root.+_name,1);set(_root.win+_name,1);if(Number(_root.winox1)+Number(_root.winox2)+Number(_root.winox3)=3orNumber(_root.winox4)+Number(_root.winox5)+Number(_root.winox6)=3orNumber(_root.winox7)+N

12、umber(_root.winox8)+Number(_root.winox9)=3orNumber(_root.winox1)+Number(_root.winox4)+Number(_root.winox7)=3orNumber(_root.winox2)+Number(_root.winox5)+Number(_root.winox8)=3orNumber(_root.winox3)+Number(_root.winox6)+Number(_root.winox9)=3orNumber(_root.winox1)+Number(_root.winox5)+Number(_root.win

13、ox9)=3orNumber(_root.winox3)+Number(_root.winox5)+Number(_root.winox7)=3)tellTarget(_root)gotoAndStop(win);/else_root.check=0;call(attack);call(defence);if(_root.checkeq0)for(_root.a=1;_root.a10;_root.a+)if(eval(_root.ox+_root.a)ne1)tellTarget(_root.ox+_root.a)set(_root.ox+_root.a,1);set(_root.loseo

14、x+_root.a,1);gotoAndStop(3);break;(3)接下来我们加入AI(人工智能)程序设计。先设好当我们出现失误,让计算机的棋子放在正确位置。如下列原始程序的代码及说明:if(_root.loseox1eq1and_root.loseox2eq1and_root.ox3ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox3)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);/当计算机未下棋子,而ox1和ox2有计算机的棋子,且ox3是空的,就把计算机设成在ox3下棋子

15、,ox3停止第3帧,即“打叉”图形,_root.check会设成1,再播放我们输掉的画面同理,输入程序的其余代码:if(_root.loseox2eq1and_root.loseox3eq1and_root.ox1ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox1)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox1eq1and_root.loseox3eq1and_root.ox2ne1and_root.checkne1)_root.check=1;te

16、llTarget(_root.ox2)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox4eq1and_root.loseox5eq1and_root.ox6ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox6)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox4eq1and_root.loseox6eq1and_root.ox5ne1and_root.checkne1)_roo

17、t.check=1;tellTarget(_root.ox5)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox6eq1and_root.loseox5eq1and_root.ox4ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox4)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox7eq1and_root.loseox8eq1and_root.ox9ne1and_root.c

18、heckne1)_root.check=1;tellTarget(_root.ox9)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox7eq1and_root.loseox9eq1and_root.ox8ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox8)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox9eq1and_root.loseox8eq1and_root.ox7n

19、e1and_root.checkne1)_root.check=1;tellTarget(_root.ox7)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox1eq1and_root.loseox4eq1and_root.ox7ne1and_root.checkne1)_root.check = 1;tellTarget(_root.ox7)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox7eq1and_root.loseox4eq

20、1and_root.ox1ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox1)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox7eq1and_root.loseox1eq1and_root.ox4ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox4)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox2eq1and_ro

21、ot.loseox5eq1and_root.ox8ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox8)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox2eq1and_root.loseox8eq1and_root.ox5ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox5)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.lose

22、ox5eq1and_root.loseox8eq1and_root.ox2ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox2)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox3eq1and_root.loseox6eq1and_root.ox9ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox9)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);i

23、f(_root.loseox3eq1and_root.loseox9eq1and_root.ox6ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox6)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox6eq1and_root.loseox9eq1and_root.ox3ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox3)gotoAndStop(3);tellTarget(_root)gotoAnd

24、Stop(lose);if(_root.loseox1eq1and_root.loseox5eq1and_root.ox9ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox9)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox1eq1and_root.loseox5eq1and_root.ox9ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox9)gotoAndStop(3);tellTarget(_

25、root)gotoAndStop(lose);if(_root.loseox1eq1and_root.loseox9eq1and_root.ox5ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox5)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox9eq1and_root.loseox5eq1and_root.ox1ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox1)gotoAndStop(3);

26、tellTarget(_root)gotoAndStop(lose);if(_root.loseox3eq1and_root.loseox5eq1and_root.ox7ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox7)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox3eq1and_root.loseox7eq1and_root.ox5ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox5)got

27、oAndStop(3);tellTarget(_root)gotoAndStop(lose);if(_root.loseox7eq1and_root.loseox5eq1and_root.ox3ne1and_root.checkne1)_root.check=1;tellTarget(_root.ox3)gotoAndStop(3);tellTarget(_root)gotoAndStop(lose);4.1井字过三关(3)(4)因程序代码太长,所以我们在MC影片剪辑中新增一个图层“攻击层”来存放这些程序代码。在时间轴上单击“插入图层”按钮新建一个“图层3”,重命名为“攻击层”,在第5帧按F6

28、键插入关键帧,再加入以上动作,新建立的“攻击层”如图4-9所示。图4-9新建立的攻击函数层(5)打开帧“属性”面板,将第5帧命名为“attack”,如图4-10所示。图4-10命令帧为“attack”(6)接下来制作防守程序,使用的程序代码和上面的差不多,不同的代码如下:if(_root.winox1eq1and_root.winox2eq1and_root.ox3ne1and_root.checkeq0)_root.check=1;_root.ox3=1;_root.loseox3=1;tellTarget(_root.ox3)gotoAndStop(3);/当计算机未下棋子,而ox1、ox

29、2是我方的棋子时,计算机会将棋子下在ox3位置,且_root.check会设成1程序的其余代码如下:if(_root.winox2eq1and_root.winox3eq1and_root.ox1ne1and_root.checkeq0)_root.check=1;_root.ox1=1;_root.loseox1=1;tellTarget(_root.ox1)gotoAndStop(3);if(_root.winox1eq1and_root.winox3eq1and_root.ox2ne1and_root.checkeq0)_root.check=1;_root.ox2=1;_root.lo

30、seox2=1;tellTarget(_root.ox2)gotoAndStop(3);if(_root.winox4eq1and_root.winox5eq1and_root.ox6ne1and_root.checkeq0)_root.check=1;_root.ox6=1;_root.loseox6=1;tellTarget(_root.ox6)gotoAndStop(3);if(_root.winox4eq1and_root.winox6eq1and_root.ox5ne1and_root.checkeq0)_root.check=1;_root.ox5=1;_root.loseox5=

31、1;tellTarget(_root.ox5)gotoAndStop(3);if(_root.winox6eq1and_root.winox5eq1and_root.ox4ne1and_root.checkeq0)_root.check=1;_root.ox4=1;_root.loseox4=1;tellTarget(_root.ox4)gotoAndStop(3);if(_root.winox7eq1and_root.winox8eq1and_root.ox9ne1and_root.checkeq0)_root.check=1;_root.ox9=1;_root.loseox9=1;tell

32、Target(_root.ox9)gotoAndStop(3);if(_root.winox7eq1and_root.winox9eq1and_root.ox8ne1and_root.checkeq0)_root.check=1;_root.ox8=1;_root.loseox8=1;tellTarget(_root.ox8)gotoAndStop(3);if(_root.winox9eq1and_root.winox8eq1and_root.ox7ne1and_root.checkeq0)_root.check=1;_root.ox7=1;_root.loseox7=1;tellTarget

33、(_root.ox7)gotoAndStop(3);if(_root.winox1eq1and_root.winox4eq1and_root.ox7ne1and_root.checkeq0)_root.check=1;_root.ox7=1;_root.loseox7=1;tellTarget(_root.ox7)gotoAndStop(3);if(_root.winox7eq1and_root.winox4eq1and_root.ox1ne1and_root.checkeq0)_root.check=1;_root.ox1=1;_root.loseox1=1;tellTarget(_root

34、.ox1)gotoAndStop(3);if(_root.winox7eq1and_root.winox1eq1and_root.ox4ne1and_root.checkeq0)_root.check=1;_root.ox4=1;_root.loseox4=1;tellTarget(_root.ox4)gotoAndStop(3);if(_root.winox2eq1and_root.winox5eq1and_root.ox8ne1and_root.checkeq0)_root.check=1;_root.ox8=1;_root.loseox8=1;tellTarget(_root.ox8)g

35、otoAndStop(3);if(_root.winox2eq1and_root.winox8eq1and_root.ox5ne1and_root.checkeq0)_root.check=1;_root.ox5=1;_root.loseox5=1;tellTarget(_root.ox5)gotoAndStop(3);if(_root.winox5eq1and_root.winox8eq1and_root.ox2ne1and_root.checkeq0)_root.check=1;_root.ox2=1;_root.loseox2=1;tellTarget(_root.ox2)gotoAnd

36、Stop(3);if(_root.winox3eq1and_root.winox6eq1and_root.ox9ne1and_root.checkeq0)_root.check=1;_root.ox9=1;_root.loseox9=1;tellTarget(_root.ox9)gotoAndStop(3);if(_root.winox3eq1and_root.winox9eq1and_root.ox6ne1and_root.checkeq0)_root.check=1;_root.ox6=1;_root.loseox6=1;tellTarget(_root.ox6)gotoAndStop(3

37、);if(_root.winox6eq1and_root.winox9eq1and_root.ox3ne1and_root.checkeq0)_root.check=1;_root.ox3=1;_root.loseox3=1;tellTarget(_root.ox3)gotoAndStop(3);if(_root.winox1eq1and_root.winox5eq1and_root.ox9ne1and_root.checkeq0)_root.check=1;_root.ox9=1;_root.loseox9=1;tellTarget(_root.ox9)gotoAndStop(3);if(_

38、root.winox1eq1and_root.winox9eq1and_root.ox5ne1and_root.checkeq0)_root.check=1;_root.ox5=1;_root.loseox5=1;tellTarget(_root.ox5)gotoAndStop(3);if(_root.winox9eq1and_root.winox5eq1and_root.ox1ne1and_root.checkeq0)_root.check=1;_root.ox1=1;_root.loseox1=1;tellTarget(_root.ox1)gotoAndStop(3);/if(_root.

39、winox3eq1and_root.winox5eq1and_root.ox7ne1and_root.checkeq0)_root.check=1;_root.ox7=1;_root.loseox7=1;tellTarget(_root.ox7)gotoAndStop(3);if(_root.winox3eq1and_root.winox7eq1and_root.ox5ne1and_root.checkeq0)_root.check=1;_root.ox5=1;_root.loseox5=1;tellTarget(_root.ox5)gotoAndStop(3);/if(_root.winox

40、7eq1and_root.winox5eq1and_root.ox3ne1and_root.checkeq0)_root.check=1;_root.ox3=1;_root.loseox3=1;tellTarget(_root.ox3)gotoAndStop(3);/4.1井字过三关(4)(7)同样,在时间轴上单击“插入图层”按钮新建一个“图层4”,取名为“防守层”,在第10帧按F6键插入关键帧,再加入上面的动作,新建立的“防守层”如图4-11所示。图4-11新建立的防守函数层(8)设置第10帧的名称为“defense”,如图4-12所示。图4-12命令帧为“defense”(9)至此,主要部

41、分已经完成,下面开始制作最后胜利(win)和失败(lose)的影片剪辑。回到场景1,新建一个“图层3”,并命名为“胜利和失败”。在第10帧按F6键插入关键帧,在此画出胜利画面,帧名称设置为“win”,在第15帧按F6键插入关键帧,帧名称设置为“lose”,在此制作出失败画面,在第16帧处按F5键插入相同帧。这里分别对胜利和失败场景建立了一个动态的影片剪辑win和lose,读者可以打开原程序进行查看。由于制作简单,这里就不再详细介绍了,制作后的效果如图4-13所示。图4-13制作的win和lose影片剪辑(10)在第1帧上加入“stop();”动作。(11)执行菜单栏“插入”|“新建元件”命令,

42、新增一个按钮元件,命名为“再玩一次”,双击工具箱中的“矩形工具”按钮,在弹出的“矩形设置”对话框中设置边角半径为5点,画出按钮的图形,并新建一个“图层2”,单击工具箱中的“文本工具”按钮,输入静态文本“再玩一次”,字体为“华文新魏”,大小为23,然后在两个图层的“点击”帧分别按F5键插入相同帧,效果如图4-14所示。图4-14绘制的“再玩一次”按钮(12)单击返回到主场景,在时间轴上单击“插入图层”按钮新建一个图层,命名为“开始按钮”,把按钮元件“再玩一次”从“库”中拉到“开始按钮”图层上,并加上如下语句:on(release)gotoAndStop(1);for(replay=1;repla

43、y10;replay+)set(loseox+replay,0);set(winox+replay,0);set(ox+replay,0);tellTarget(ox+replay)gotoAndStop(1);/先回到第1帧,再将所有变量归0,让18个圈叉元件回到第1帧(13)完成本实例的制作,可以进行发布试玩了。4.2迷你猜数(1)游戏说明迷你猜数是一个很受欢迎的传统益智游戏,当玩家猜到的数字与计算机随机产生的数字一致时,就赢了,否则就输了。利用Flash强大的交互性和ActionScript脚本功能可以实现这个游戏。在游戏之前单击游戏界面上的“规则”按钮,可以了解这个游戏的规则。游戏过程

44、中输入4个不重复的数字,单击“确定”按钮后,结果将显示在下方的历史记录中,其形式为*?A?B。星号表示玩家输入的数字,如果输入的4位数字中,位置和数字都猜正确,则为A,数字猜对而位置猜错,则为B,当结果为4A时,表示全部猜对。如果8次均未猜中,则游戏结束。游戏界面如图4-15所示。图4-15迷你猜数设计技巧(1)为了实现在游戏中数字的输入,要在场景中设计一个输入文本框。主要用到输入文本框的使用及Var值的设置。(2)为了实现对数字的记忆及判断,在游戏开始时,运用随机函数产生4个不重复的随机数字,组成一个4位数的字符串,然后运用字符串函数判断分析玩家输入的数字符串与游戏开始时产生的随机字符串的差

45、别,再在动态文本框里显示数字正确的个数和顺序正确的个数,玩家根据显示的信息再推断正确的数字和顺序。在8次机会中,玩家推断出正确的数字,则此轮游戏胜利。主要应用到如下命令:random()创建随机数字。_root.inputStr=String(_root.input)将输入的数字转化为字符串。制作步骤1制作游戏主要的元件(1)首先设置场景参数。启动FlashMX2004,单击“属性”面板中的“大小”按钮,设置影片宽为550px,高为400px,背景颜色为蓝色(#3399FF),播放速度帧频为12fps,如图4-16所示。单击“确定”按钮,进入编辑页面。图4-16设置场景大小(2)一个好的游戏需

46、要一个美观大方的背景,如果读者本身是一个专业的平面设计师的话,可以用Photoshop设计出漂亮的游戏界面。这里我们用Flash绘制一个简单的游戏底图。把“图层1”命名为“bg”,执行菜单栏“插入”|“新建元件”命令或者按Ctrl+F8快捷键打开“创建新元件”对话框,在打开的对话框中将行为设为“影片剪辑”,名称设为“字母G”,如图4-17所示。单击“确定”按钮,进入“字母G”影片剪辑的编辑页面。图4-17新建一个元件(3)单击工具箱中的“文本工具”按钮,输入字母G,大小为96,颜色为白色,如图4-18所示。图4-18建立“字母G”影片剪辑(4)按第(2)(3)步骤分别建立新影片剪辑“字母U”、

47、“字母E”和“字母S”,在其中分别输入字母U、E和S。(5)建立好这些素材后单击按钮,回到主场景。单击工具箱中的“选择工具”按钮,用选择工具把这些素材从“库”面板中拖到主场景的bg层上,并适当地调整字形和字体大小。(6)分别选中每一个字母,执行菜单栏中的“窗口”|“设计面板”|“变形”命令,打开如图4-19所示的“变形”面板,分别将字母进行变形操作,并在“属性”面板中设置Alpha的值,使每个字母呈现不同的透明度;然后,单击工具箱中的“文本工具”按钮,在主场景中输入“迷你猜数”,设置为“隶书”、45号字、蓝色。完成背景设计,设计完的背景如图4-20所示。图4-19打开的“变形”面板图4-20设

48、置背景图效果(7)用鼠标单击第5帧,按F5键将主场景帧数增加为5帧,如图4-21所示。图4-21增加相同帧(8)执行菜单栏“插入”|“新建元件”命令或者按Ctrl+F8快捷键,打开“创建新元件”对话框,在打开的对话框中将行为设为“影片剪辑”,名称设为“warn”,这是制作游戏出错的场景。单击“确定”按钮,进入warn影片剪辑的编辑页面。再执行菜单栏“插入”|“新建元件”命令或者按Ctrl+F8快捷键打开“创建新元件”对话框,在打开的对话框中将行为设为“影片剪辑”,名称设为“Symbol1”。(9)单击工具箱中的“矩形工具”按钮,再单击工具箱“选项”栏上的“圆角矩形半径”按钮,打开“矩形设置”对

49、话框,把矩形边角半径设置为2,如图4-22所示,单击“确定”按钮,在编辑区域绘制一个白色边框的矩形,选择矩形,按F8键,将其转化成影片剪辑“Symbol2”。(10)单击工具箱中的“文本工具”按钮,用文本工具在矩形上输入“数字不能重复!”,如图4-23所示。选中文字并按两次快捷键Ctrl+B将文字打碎。图4-22“矩形设置”对话框图4-23制作警告提示(11)单击工具箱中的“选择工具”按钮,用选择工具选中整个文字内容并按F8键将其转换成元件,属性设为“影片剪辑”,名称为“字”。再双击“库”面板中的warn影片剪辑,进入编辑场景,在warn场景中的第2、5、15、20帧分别按F6键插入关键帧,在

50、“变形”面板中设定第2帧的Symbol1纵横缩放都为10%,在“属性”面板中设置第20帧Symbol1的Alpha值为0%。分别用鼠标右键单击第2、15帧,在弹出的快捷菜单中选择“创建补间动画”命令,然后将第1帧中的Symbol1删除,并输入语句“stop();”,warn影片剪辑如图4-24所示。图4-24制作警告的动画场景(12)单击按钮回到主场景,单击“插入图层”按钮,新建一个图层,即“图层2”,选中该层,并将该层改名为“warn”,把第5帧删除。将影片剪辑warn从“库”中拖入到场景中,打开“属性”面板,将其命名为“warn”,如图4-25所示。图4-25命名影片剪辑4.2迷你猜数(2

51、)(13)单击“插入图层”按钮6次,再增加6个图层,分别将其改名为“action”,“history”,“input”,“win”,“lost”,“help”,按照图4-26所示在各层的相关帧处按F6键插入关键帧,其中带字母a的帧是要加入函数命令的帧,带黑点的帧是要加入相关的元件素材的帧。为了能够更加清楚地讲解制作步骤,让读者先了解一下结构,这里先列出最后完成的时间轴。图4-26完成后的时间轴(14)执行菜单栏“插入”|“新建元件”命令或者按Ctrl+F8快捷键打开“创建新元件”对话框,在打开的对话框中将行为设为“按钮”,名称设为“OK”,单击“确定”按钮,进入OK按钮的编辑页面。(15)通过

52、工具箱中的“矩形工具”按钮和“文本工具”按钮,绘制一个“确定”按钮,如图4-27所示。图4-27绘制“确定”按钮效果(16)在“库”中用鼠标右键单击OK按钮,在弹出的如图4-28所示的快捷菜单中选择“重制”命令,复制两个按钮,分别双击这两个按钮进入其编辑状态,将文字“确定”分别改为“规则”、“返回”,并将按钮名称改为“Help”、“Back”,如图4-29所示。图4-28弹出快捷菜单图4-29制作的Back按钮2游戏场景的设计(1)单击回到主场景,单击input层的第2帧,按F6键插入关键帧,单击工具箱中的“文本工具”按钮,在“属性”面板中设置文字工具为“输入文本”模式,画出一个矩形“输入文本

53、”框,然后设置变量值为input,最多字符设为4,单击“字符”按钮,在弹出的“字符选项”对话框中按如图4-30所示的进行设置。图4-30设置文字属性(2)单击“确定”按钮,完成文字属性设置,然后将OK按钮从“库”中拖入到第2帧中,按如图4-31所示的排列。图4-31拖入按钮(3)单击history层的第2帧,按F6键插入关键帧,单击工具箱中的“文本工具”按钮,先输入“历史:”静态文本,并设置颜色为#00CCFF。再打开“属性”面板,设置文本工具为“动态文本”模式,在编辑区域画出8个矩形文字框,并排列整齐,在“属性”面板中设置8个文字框的变量值依次为“his1”,“his2”,“his3”,如图

54、4-32所示。在各“动态文本”下方分别绘制一个线条进行衬托,其最终效果如图4-33所示。图4-32设置文字框属性图4-33第2帧效果图(4)单击help层的第1帧,将Help按钮从“库”中拖到场景的右上角,单击工具箱中的“文本工具”按钮,输入“?”,并将其转换成“Symbol3”影片剪辑,如图4-34所示。图4-34设置help层的第1帧(5)单击win层的第3帧,将其设置为关键帧,制作胜利的场景。单击工具箱中的“文本工具”按钮,画两个静态文本框,输入“恭喜您,猜对了!”和“答案:”;再用文本工具画一个动态文本框,设置变量值为shuzi,将OK按钮从“库”中拖到场景中,如图4-35所示。图4-

55、35胜利的场景(6)同样单击lost层的第4帧并设置其为关键帧,制作失败的场景。单击工具箱中的“文本工具”按钮,画两个静态文本框,输入“对不起您猜错了!”和“答案:”;再用文本工具画一个动态文本框,设置变量值为shuzi,将OK按钮从“库”中拖到场景中,如图4-36所示。图4-36制作的失败场景(7)单击help层第5帧,单击工具箱中的“文本工具”按钮,画一个静态文本框,输入游戏规则的说明。游戏说明:输入四个不重复的数字,点确定按钮后结果将显示在下方的历史中,其形式为?A?B。其中,星号表示是你输入的数字,你输入的四位数字中,位置和数字都正确为A,数字相同而位置不同为B,当4A时为猜对。如八次

56、仍未猜中则游戏结束。再将Back按钮从“库”中拖到场景中,效果如图4-37所示。图4-37完成游戏规则的场景4.2迷你猜数(3)3加入动作命令(1)接下来在需要加上函数命令的各帧上加入函数。单击action层的第1帧,打开“动作-帧”面板,在右侧的区域中输入下面的语句:a=0;/记录history的?A?B中A的值b=0;/记录history的?A?B中B的值time=0;/记录玩家输入的次数inputStr=;/清空字符串变量for(vari=1;i=8;i+)_roothisaddi=;/清空history文本框中的记录/下面用函数random()创建4个随机数字,并确保4个数字不重复No

57、1=random(10);No2=random(10);while(No2=No1)No2=random(10);No3=random(10);while(No3=No1orNo3=No2)No3=random(10);No4=random(10);while(No4=No1orNo4=No2orNo4=No3)No4=random(10);trace(No1);trace(No2);trace(No3);trace(No4);shuzi=String(No1)+String(No2)+String(No3)+String(No4);trace(shuzi)trace(*)/下面定义一个检查输入的函数,在后面进行调用functionscan()_root.inputStr=String(_root.input);/将玩家输入的数字转化为字符串if(_root.inputStr.length=4)inNo=newArray();/创建一个新数组for(vari=1;i=4;i+)inNoi=_root.inputStr.charAt(i-1);/在循环中用charAt()函数依次读取每个字符并附给数组inNo/下面判断玩家输入的字符是否有

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!