论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

游戏制作--简单射击游戏教程

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:13:40


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

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

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

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

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

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

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

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

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

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

第九步,游戏难度变化:
        加入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等,或加入自己的东西,但还有!

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

 全部源文件.rar
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058