第5章射击类游戏5.1神枪手(1)游戏说明Flash射击类游戏现在已经有很多了,大部分是那种飞行射击类游戏,这里我们来学习制作一款比较另类的射击游戏——打靶训练。不过这个游戏玩起来还是有点难度的,因为游戏中的目标靶会一直慢慢地移动,可不是一动不动地等着你来打。游戏过程中,单击鼠标左键就等于“开枪”,目标是打中小猪手中拿着的不断移动的靶心,打的环数越多越好。每次最高得分为5分,也就是必须射中靶心才可以,最低得分为1分,具体得分视射击结果来定,目标靶的右面是记分牌,用来记录射击次数和每次的得分,每次游戏可以打10枪,得分越高越好。游戏的场景如图5-1所示。图5-1神枪手游戏场景设计技巧(1)实现本游戏动画设计的第1个关键在于靶的设计制作。靶心是由5个圆或圆环组成的影片剪辑,影片在场景中不断地移动产生一定的射击难度。因为在射击过程中,圆环或圆需要对鼠标的点击做出响应,所以应将圆环制作成按钮。为了方便记分需要把每个环形按钮加上实体名。枪的靶心用的是鼠标替换命令,可以通过单击鼠标左键实现开枪的效果。游戏的背景是一个小猪,小猪的眼睛不断在动,还在说话,这样加强了游戏的可玩性。(2)本游戏动画设计的第2个关键在于游戏分数统计的实现。在“第”与“枪”、“环数:”与“环”之间分别加入两个动态文本框,通过函数命令实现记分和累加。本游戏主要涉及到FlashMX2004中的一些函数算法和鼠标替换的功能,主要命令如下:·a=Number(a)+Number(1)函数的累加命令算法。·startDrag(/move,true)和Mouse.hide()实现鼠标的隐藏和拖动效果。制作步骤1.绘制靶心和瞄准器(1)启动FlashMX2004,单击“属性”面板中的“大小”按钮,打开“文档属性”对话框,设置影片宽为500px,高275px,背景颜色为白色,播放速度帧频为12fps,如图5-2所示。图5-2设置影片属性(2)先保存文件,执行菜单栏“文件”|“保存”命令,将要制作的游戏保存为“神枪手.fla”,如图5-3所示。图5-3保存文件(3)游戏中每次射击后,对所得的分数是根据所射中的圆环来进行判断。如果射中的是最外面的圆环,只能得一分,越往内部,得分越高,所以首先制作目标靶中代表不同得分的圆环。因为在射击过程中圆环需要对鼠标的点击做出响应,所以应将圆环制作成按钮,如图5-4所示。图5-4将要制作的圆环效果(4)执行菜单栏“插入”|“新建元件”命令,新建一个按钮元件,命名为“1”。进入元件的编辑区后,单击工具箱中的“椭圆工具”按钮,绘制两个不同大小的正圆(大圆的半径为72px,小圆的半径为54px),然后将小圆放到大圆的内部,并将小圆内部的填充区域删除掉,再单击工具箱中的“文本工具”按钮,在圆环上标注上分值,如图5-5所示。图5-5制作的第1个圆环注意:在用FlashMX2004中的工具绘图时,按住Shift键可以绘制出等边的对象,如用“椭圆工具”按钮时,按住Shift键可以绘制出正圆。(5)按照相同的方法制作其余4个代表不同分数的圆或圆环,分数越大的圆或圆环,其内部的小圆半径就越小,然后在不同圆环上标注出相应的分数。其余4个圆环分别如图5-6所示。各个圆形的参数大小如下:·环2:大半径为54px,小半径为36px。·环3:大半径为36px,小半径为18px。·圆4:半径为18px。·圆5:半径为6.2px。图5-6其他的4个圆或圆环效果(6)接下来制作瞄准器,新建一个图形元件,命名为gun。进入元件的编辑区后,单击工具箱中的“椭圆工具”按钮,绘制一个正圆(直径为79.7px),如图5-7所示。在第4帧按F5键插入相同帧。图5-7制作瞄准器(7)在时间轴上单击“插入图层”按钮新建“图层2”,单击工具箱中的“线条工具”按钮,设置大小为10px,红色,绘制一个正的“十”字,按F8键将其转换成影片剪辑,并命名为“准星”。在第4帧处按F6键插入关键帧,将“准星”的宽度稍微减小,按Ctrl+T快捷键打开“变形”对话框,设置缩小为90%,并旋转45°,如图5-8所示。选择第1帧后单击鼠标右键,在弹出的菜单中选择“创建补间动画”命令,这样就可以实现瞄准器的旋转效果。图5-8旋转的效果(8)执行菜单栏“插入”|“新建元件”命令,新建一个影片剪辑元件,命名为“mgun”,将前面制作好的元件gun拖动到编辑区中即可,如图5-9所示。图5-9制作影片剪辑制作说明:到这一步就完成了靶心和瞄准器的绘制,读者也可以使用不同的绘图工具绘制其他的平面效果。操作过程中要注意影片剪辑与按钮的区别。5.1神枪手(2)2.目标靶的设计(1)下面来制作游戏中的关键部分——目标靶。执行菜单栏“插入”|“新建元件”命令,新建一个影片剪辑,命名为target。进入元件的编辑区后,添加4个图层,将“图层1”~“图层5”分别命名为bg,target,info,hand和as。选择图层bg,使用Flash提供的绘图工具绘制一个目标靶的背景图(可以根据自己的喜好来绘制),这里我们绘制背景图后,在第3帧按F5键,将时间线延伸到第4帧,结果如图5-10所示。图5-10制作背景(2)切换到图层target,将前面制作好的5个圆环或圆——1,2,3,4,5拖到编辑区中,将1排到最外层,将5放到最内层,如图5-11所示。图5-11拼好靶后的图层场景(3)在第3帧处按F7键插入空白关键帧。切换到图层info,单击工具箱中的“文本工具”按钮,在游戏背景的右侧绘制两个动态文本框,并分别设置文本变量为b和c,它们分别代表游戏中的射击次数和每次的得分,如图5-12所示。图5-12设置变量值制作说明:这里设置文本的变量名是为了后面方便对函数的控制。在Flash中,经常先对动态文本的变量名进行定义,然后再通过函数命令实现动态文本的记数和累加计数的功能。(4)使用“文本工具”按钮在文本框旁边输入文字说明信息,效果如图5-13所示。图5-13输入文字说明的样式(5)在info层的第3帧按F7键插入一个空白关键帧,使用文本工具在背景上输入重玩的提示信息“打完了,休息一会儿!”和“再打一次”,并制作一个圆形绿色放射渐变的按钮,如图5-14所示。图5-14输入打完了的提示信息和再打一次的按钮(6)接下来在下方绘制一个动态文本框,设置其变量名为a,用来显示最后的总得分,然后再其两侧分别输入文字说明“您的成绩共:”和“环”,结果如图5-15所示。图5-15制作总成绩动态文本框和说明文字(7)在图层as的第2帧插入空白关键帧并添加动作命令“gotoAndPlay(1);”(通过加入这个命令,游戏执行到这一帧的时候会跳播到第1帧,实现游戏的连续性),如图5-16所示。在图层as的第3帧插入空白关键帧并添加动作“stop();”(通过加入这一个命令,能让游戏停止在结束的界面上)。图5-16添加跳播命令(8)游戏中主要的控制脚本应该加在前面的5个圆环或圆中,回到图层target的第1帧,选中圆环“1”,添加如下语句:on(release){a=Number(a)+Number(1);//如果击中了圆环1,游戏总分为上次总分加1b=Number(b)+Number(1);//射击次数为当前次数加1c=1//当次射击得分为1}(9)同样,给圆环2添加如下语句:on(release){a=Number(a)+Number(2);//如果击中了圆环2,游戏总分为上次总分加2b=Number(b)+Number(1);//射击次数为当前次数加1c=2//当次射击得分为2}(10)给圆环3添加如下语句:on(release){a=Number(a)+Number(3);//如果击中了圆环3,游戏总分为上次总分加3b=Number(b)+Number(1);//射击次数为当前次数加1c=3//当次射击得分为3}(11)给圆4添加如下语句:on(release){a=Number(a)+Number(4);//如果击中了圆4,游戏总分为上次总分加4b=Number(b)+Number(1);//射击次数为当前次数加1c=4//当次射击得分为4}(12)给圆5添加如下语句:on(release){a=Number(a)+Number(5);//如果击中了圆5,游戏总分为上次总分加5b=Number(b)+Number(1);//射击次数为当前次数加1c=5//当次射击得分为5}(13)在hand层,绘制两只捧着“靶”的小猪手,并延长到第3帧,最后的场景如图5-17所示。图5-17制作好的目标靶5.1神枪手(3)3.游戏背景的设计(1)单击返回到主场景,新建两个图层,分别命名为target和gun,分别将元件target和mgun从“库”面板中拖到相应的图层,在“属性”面板中设置对象mgun的实体名为move,如图5-18所示。图5-18设置实体名(2)然后在图层gun的第1帧添加如下语句:startDrag(/move,true);Mouse.hide();//拖动瞄准器并隐藏鼠标(3)对于图层target中的目标靶,我们可以设置一些运动过渡,使其缓慢地移动(可以先向右,再向左,再向上,最后再向下运动,这样将干扰射击)。(4)选择“图层1”,将其命名为“bg”层,并加入背景。单击工具箱中的“文本工具”按钮,输入“神枪手”并设置不同的透明值,复制相应的个数。接下来制作“小猪”影片剪辑,按Ctrl+F8快捷键新建一个影片剪辑,命名为“小猪”,单击“确定”按钮进入编辑页面。在“图层1”上用绘图工具制作一头可爱的小猪,但是没有眼睛,在第26帧处按F5键插入相同帧。在时间轴上单击“插入图层”按钮新建“图层2”,用工具绘制小猪的眼睛,然后按F8键将其转换成图形元件“猪眼”,在第7、15、22、26帧处分别按F6键插入关键帧并设置眼睛的位置,加入补间动画,完成“小猪”的动画制作。按Ctrl+F8快捷键新建一个按钮,命名为“小猪按钮”,单击“确定”按钮进入编辑页面,在“弹起”帧处将“小猪”影片剪辑拖入场景中,在“点击”帧上按F5键插入相同的帧,在时间轴上单击“插入图层”按钮新建“图层2”,在“指针经过”帧按F6键插入关键帧,绘制“打准了,不要打到我!”,最后的主场景如图5-19所示。图5-19制作的主场景(4)这样,一个很好玩的打靶游戏就制作完成了。5.2星际战机(1)游戏说明这是一款简单的战机小游戏,玩家可以用键盘控制自己的战机与敌机进行战斗,键盘上的↑(上)、↓(下)、←(左)、→(右)键分别控制飞机的4个飞行方向,空格键用来发射子弹。生命是有限的,只有3次机会,如果被撞到3次,那么只好按“重新游戏”按钮再来一次了,游戏界面如图5-20所示(特别说明:这个游戏只适用于射击游戏的模拟参考,由于这是一个大型射击游戏的一部分,所以在游戏时有可能会出现“不死”或者“飞弹”打不出的现象)。图5-20星际战机游戏界面设计技巧(1)游戏的关键是制作敌机和玩家两种战机,在游戏过程中,它们是主要的元件,为了能实现“隐身”及“复制”的功能,要把这两种元件制作成影片剪辑。游戏中主要用到了如下命令:·Key.isDown()实现人机对话,控制对象的移动。·random()实现随机的复制。(2)为了体现战斗中飞机的生命值,用一个图形元件hp来表示,通过命令实现生命的减少。主要用到了如下命令:·removeMovieClip实现影片剪辑对象的删除。·hitTest()实现碰撞的测试。制作步骤1.游戏背景的制作(1)启动FlashMX2004,单击“属性”面板中的“大小”按钮,设置影片宽为550px,高为400px,背景颜色为黑色,播放速度帧频为12fps,如图5-21所示。图5-21设置文件属性(2)执行菜单栏“文件”|“保存”命令,将要制作的游戏保存为“星际战机.fla”,如图5-22所示。图5-22保存文件(3)单击“保存”按钮,进入影片的编辑主场景。把“图层1”改名为“background”,在这里制作游戏的背景效果。执行菜单栏“插入”|“新建元件”命令,新建一个图形元件,命名为“cloud1