flash射击类游戏现在已经有很多了,大部分是那种飞行射击类游戏,这此我们来学习制作一款比较另类的射击游戏—打靶,就象在靶场一样,远处摆放一个目标靶,你来进行射击,不过这个游戏玩还是有点难度的,因为游戏中的目标靶会一直慢慢的移动,可不是一动不动地等着你来打。(本例的.swf和.fla文件点击这里下载)
游戏的主界面如图1所示:
图1
游戏中有一个不断移动的方形目标靶,玩家可以控制一个瞄准器来射击,每次最高得分为5分,也就是必须射中靶心才可以,最低得分为1分,具体得分视射击结果来定,目标靶的右面是记分牌,用来记录射击次数和每次的得分,每次游戏可以打十枪,得分越高越好。
1.游戏中每次射击后对所得分数的判断是根据所射中的圆环,如果射中的是最外面的圆环,只能得一分,越往内部,得分越高,所以首先制作目标靶中的代表不同得分的圆环,因为在射击过程中圆环需要对鼠标的点击做出响应,所以圆环应该制作成button.
新建一个button按钮元件,命名为1,进入元件的编辑区后,使用椭圆工具绘制两个不同大小的正圆,然后将小圆放到大圆的内部,并将小圆的内部填充区域删除掉,然后使用文本工具在圆环上标注上分值,如图2所示:
图2
按照相同的方法制作其余四个代表不同分数的圆环,只不过分数越大的圆环,其内部的小圆半径就越小,同时给不同圆环标注上相应的分数,其余四个圆环分别如图3,4,5,6所示;
图3
图4
图5
图6
2.接下来制作瞄准器,新建一个graphic图形元件,命名为gun,进入元件的编辑区后,使用绘图工具绘制如图7所示的瞄准器:
图7
在第4帧插入一个关键帧,将图7中的所有线条的宽度稍微减小,如图8所示,这样就可以达到瞄准器的伸缩效果:
图8
最后新建一个movie clip影片剪辑元件,命名为mgun,将上面制作好的元件gun拖到编辑区中即可
3.下面来制作游戏中的关键部分,目标靶。新建一个movie clip影片剪辑元件,命名为target,进入元件的编辑区后,添加四个图层,从下向上依此命名为bg,target,info和as。
选择图层bg,使用flash提供的丰富的绘图工具绘制一个目标靶的背景图,可以根据自己的喜好来绘制,这里我们绘制的背景图如图9所示:
图9
最后将时间线延伸到第3帧。
回到图层target,将前面制作好的五个圆环1,2,3,4,5拖到编辑区中,将1排到最外层,将5放到最内层,并按照实际生活中靶的情况进行排列,如图10所示:
图10
最后将时间线延伸到第2帧即可。
回到图层info,使用文本工具在游戏背景的右侧绘制两个文本框,在属性面板中分别设置为dynamic text动态文本框,并分别设置文本变量为b和c,分别代表游戏中的射击次数和每次的得分,然后使用文本工具在文本框旁边输入提示信息,如图11所示:
图11
然后在此层的第3帧插入一个空白关键帧,使用文本工具在背景上输入重玩的提示信息—replay,然后在下面绘制一个动态文本框,设置其变量名为a,用来显示最后的总得分,如图12所示;
图12
最后在图层as的第2帧添加as: gotoandplay(1); 在图层as的第3帧添加as: stop();
4.这里可能大家会问,控制游戏的action动作脚本在哪里呢?我们可以仔细想一想,游戏中的主要动作就是玩家对目标靶进行的射击,所以游戏中主要的控制脚本应该加在前面的五个圆环中。
回到图层target,选中圆环1,添加如下as:
on (release) {
a=number(a)+number(1);
//如果击中了圆环1,游戏总分为上次总分加1
b=number(b)+number(1);
//射击次数为当前次数加1
c=1
//当次射击得分为1
}
//如果击中了圆环1,游戏总分为上次总分加1
同样的给圆环2添加如下as:
on (release) {
a=number(a)+number(2);
//如果击中了圆环1,游戏总分为上次总分加2
b=number(b)+number(1);
//射击次数为当前次数加1
c=2
//当次射击得分为2
}
给圆环3添加如下as:
on (release) {
a=number(a)+number(3);
//如果击中了圆环1,游戏总分为上次总分加3
b=number(b)+number(1);
//射击次数为当前次数加1
c=3
//当次射击得分为3
}
给圆环4添加如下as:
on (release) {
a=number(a)+number(4);
//如果击中了圆环1,游戏总分为上次总分加4
b=number(b)+number(1);
//射击次数为当前次数加1
c=4
//当次射击得分为4
}
给圆环5添加如下as:
on (release) {
a=number(a)+number(5);
//如果击中了圆环1,游戏总分为上次总分加5
b=number(b)+number(1);
//射击次数为当前次数加1
c=5
//当次射击得分为5
}
最后的时间线如图13所示;
图13
5.最后回到主场景,新建两个图层,分别命名为target和gun,分别将元件target和gun拖到相应的图层,在属性面板中设置对象gun的实例名为move,然后在图层gun 的第一帧添加如下as:
startdrag("/move", true);
mouse.hide();
//拖动瞄准器并隐藏鼠标
对于图层target中的目标靶,我们可以设置一些motion运动过渡,使其缓慢的移动,具体如何移动可以自己来觉得,无非是先向坐,再向上,再向右,最后再向下这样的干扰射击的运动。最后时间线如图14所示:
图14
这样,一个很好玩的打靶游戏就制作完成了,你也可以对本游戏进行适当的扩展,比如说设置十个圆环,最高得分为10,这样就更增加了游戏的可玩性
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 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器