网页教学网
 当前位置: 网页教学网 >> 动画制作 >> Flash实例教学 >> Flash游戏制作:简单射击游戏教程(Fla源文件)
[ HTML ] [ FW ] [ DW ] [ FP ] [ JS ] [ XML ] [ CSS ] [ 图象 ] [ FLASH ] [ .NET ] [ ASP ] [ JSP ] [ PHP ] [ 数据 ] [ 系统 ] [ 安全 ] [ 素材 ] [ 建站 ] [ 主机 ] [ 入门 ] [ 技巧 ]

Flash游戏制作:简单射击游戏教程(Fla源文件)

http://www.webjx.com  更新日期:2007-10-09 19:10  出处:闪吧  作者:神仙CC

  本游戏教程涉及自定义鼠标,鼠标跟随,鼠标事件,简单动画,文本框等方面,最终成品如下,游戏难度变化:

如果你感兴趣,先把所有源文件下载,然后对照文件看以下教程,其实光看源文件已经非常清楚了,因为我大量注释,而且分步骤写代码,但还是想罗嗦几句,力求一看就懂(函数的使用可按F1查看帮助):

第一步,自定义鼠标:
        CTRL+F8加入新元件,画个魔法棒,做三帧,第一帧为普通状态,第二、三帧为按下状态,若按下状态只有一帧,动画太快。在库中(CTRL+L打开库)右键单击该元件,选择链接,在对话框中选定“为ActionScript导出”,然后在标识符输入一个名字,我的是mouse。这样attachMovie就能运行时导入影片魔法棒,创建鼠标侦听事件,做到棒子代替原鼠标图案。
自定义鼠标效果

第二步,鼠标追随:
        加入新元件(CTRL+F8),800%视角画个小星星,元件命名为flashStar,再加入一个manyStar,将flashStar拖入manyStar,同时flashStar的属性的实例名称命名为mc0,它就是追随中的带头大哥,在manyStar里写代码,先复制一群小弟,后一个追着前一个跑就行了。然后将manyStar拖入场景,命名为mc,在代码处加入开始确定mc位置的代码就好了。简单吧,关于命名的东东我往后不详细说了。
鼠标追随效果

第三步,变化的星星:
        修改flashStar,让它做变色动画,这样我们的星星就能边追随边变色,再搞个revolutionStar,将flashStar加入其中,让flashStar做旋转动画,接着在manyStar中把原来的flashStar交换成revolutionStar(在属性框中交换),星星可以追随、变色加旋转了!这样我们完成了三个影片的嵌套使用,manyStar套revolutionStar套flashStar,关于嵌套我又不多说了。做个moveStar,套上revolutionStar,做引导线运动,引导线就随便画吧,再将manyStar中的revolutionStar交换成moveStar。
变化的星星效果

第四步,一堆星星:
        做randomStar套moveStar随机决定其位置,再交换,做个allStar套randomStar将其复制出六个,旋转它们角度到六个方向上,再交换。好了群星追随全部完工。
一堆星星效果

第五步,物体下落:
        先做个函数randRange用于获取两数间的随机整数,以后多处用到。做个圆形元件第一帧停止,我的之所以持续多几帧,是为了将来设置帧标签时好看。创建this.onEnterFrame事件,这个就是游戏的主循环,意思是this(这里指主场景)进入帧后就不停的干。然后象第一步那样运行时导入圆形,设置属性,建立被导入圆形的onEnterFrame事件,这里是指这个圆形进入帧后就不停的干直到它被删除,事件中的this就指这个圆形而不是前面的主场景。通过改变_y属性做到下落,超出范围就删除。用个randRange来决定是否出现新物体下落,不然会有一堆圆形出现。还要注意的是我用了depth变量决定新物体的深度,并使它保持在一定范围内,而没有用getNextHighestDepth()方法,之所以这么做是为了保持鼠标图案的5000深度最高,这样物体不会覆盖到棒子的上面。但大家可以发现星星是在物体下面的,就是因为它的深度不够,大家可以想办法修改。
物体下落效果

第六步,多种物体:
        加入多几种图形元件,在导入时随机决定种类、属性,with的用法值得注意下,这可以减少输入量。另外属性中有个叫speed的,它不是内置属性,是我们自己加的,FLASH允许不声明就使用变量,其实这个speed是新建依附于target的变量,各个导入元件的speed是不同的,所以物体以不同速度下落。
多种物体效果

第七步,点击事件:
        加入blast元件先不画东西,再修改各个物体元件,在他们后加入空白关键帧,设置帧标签(点帧看属性框)为hit,加入blast。这是为了做出点击后的爆炸效果,blast的动画就自己画了,就是做些碎片朝不同方向飞开就行了。回主代码处创建target的onPress事件,就是点这个元件后要做的事,然后this.gotoAndStop("hit")。要注意的是一定要用this而不能用target,虽然创建时target和this指的是同一个东西,但随后的运行target是会变的,而this一直都指向它的创建者。
点击事件效果

第八步,得分框:
        这个主要自己看了,F1看帮助是好的学习方法,除Date和createTextField外就是加个score变量,在被点击时加分。
得分框效果

第九步,游戏难度变化:
        加入level变量,和两个关于level变化提示的元件,修改链接。score在物体超界时减少,level在updateStats()中根据score更新,再根据level变化情况导入相应levelDown或levelUp元件,同时物体下降速度和机率都根据level变化。当level到10后randRange(0, 30 - level * 2) == 11永远为假,即创建新物体行为停止,同时帧到第三,显示Win字样。至此,游戏基本完工,再改改细节,比如画布大小,背景色,帧数,在鼠标侦听onMouseMove中加入updateAfterEvent();使移动更顺畅,改改Bug,根据自己喜爱修改level,speed,score等,或加入自己的东西,但还有!

第十步,自己搞:
        重看源代码,先理解游戏整体结构,再看细节实现,充分理解后自己动起手来吧!

全部源文件

关键词:flash,射击
推荐给好友】【关闭】【收藏本文
最新五条评论
查看全部评论
评论总数 0
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为