




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
射击类游戏一直是Flash游戏制作中的一个热点,大多数Flash射击游戏都是都是纵版的,也就是游戏背景的前进方向是垂直的,这样的游戏已经司空见惯了。所以这次我们来制作一个横版的射击游戏,游戏背景和飞机的运动方向都是水平的。(本例的源文件下载请点击这里)游戏运行后的主界面如图1所示:图1游戏说明:此游戏玩家是以第一视角的模式来进行的,所谓第一视角就是游戏的界面相当于玩家的双眼,通过这样的形式,可以使游戏达到一种非常逼真的效果,仿佛您已经置身于激烈的游戏之中了。游戏中玩家可以使用鼠标控制屏幕中的瞄准镜,瞄准并射击从左边随机出现的敌机,飞机会以各种路线在空中飞行以避开你的射击,如果敌机被射中后,就会从空中跌落下来,相应的玩家会得一分,在游戏规定的100秒内,尽量击落更多的敌机。制作步骤:一:游戏中相应元件的制作1既然是空战游戏,自然少不了飞机,所以首先来制作游戏中的敌机。在影片中新建一个Graphic元件,命名为gPlane,进入元件的编辑状态后,可以从外部导入一张飞机的图片,然后将其分离,稍稍加工一下即可。或者使用Flash提供的强大的绘图工具自己绘制一架飞机,如图2所示:图2有了飞机,还需要一个飞行员飞机才可以工作,所以再建一个Graphic元件,命名为gMan,进入元件编辑状态后,使用椭圆绘图工具绘制一个简单的人头即可,如图3所示:图3接下来就需要将飞机和飞行员组合到一起了,因为游戏中需要使用Action动作脚本对飞机进行控制,所以需要将最终的组合体制作成Movie clip元件,所以再新建一个Movie clip元件,进入元件的编辑状态后,将元件gMan和Gplane分别拖到编辑区,使用鼠标调整其相对位置,如图4所示:图4这样,一架逼真的战斗机就制作完成了。2飞机飞行动画的制作:游戏中飞机是从游戏窗口左边随机出现的,但是飞机的飞行路线是事先确定好的,我们可以在制作过程中按照实际需要制作一些飞机沿一定路线飞行的Motion动画,使用Guide Line引导线可以很方便的实现,然后在游戏中分别调用即可,本游戏预先制作了三中不同的飞行路线,这里以其中一种举例说明,其它的制作方法完全类似。新建一个Movie clip元件,命名为mPlane1,进入元件的编辑状态后,在图层layer1的上面插入一个引导层,在引导层上使用铅笔工具随意绘制一条曲线,然后将图层延续到第120桢,如图5所示:图5然后将元件mPlane拖到图层layer1的第1关键桢,放置到曲线的左边的开始端点,飞机会自动吸附到此端点,接着在属性面板中设置飞机的Instance name为airplane。在第120桢插入一个关键祯,同样的将飞机拖到曲线的右边的端点,也会自动吸附上去,最后,在第1祯到第120祯的任意祯上单击鼠标右键,选取Creat Motion Tween命令即可,这样就创建了飞机从曲线的左端点沿曲线运动到右端点的运动效果。最后还需要添加一个图层Action,用来设置Action动作脚本,在第1桢添加如下as:var planeDepth=_root.pDepth;在最后一桢(120祯)添加如下as:_root.numPlane-;this.removeMovieClip();按照同样的方法分别制作元件mPlane2和mPlane3,和mPlane1的唯一不同点就是引导层的曲线不一样。3制作瞄准镜:游戏中玩家可以控制的唯一对象就是瞄准镜,可以用它瞄准并射击敌机,新建一个Movie clip元件,命名为mPointer,在编辑区中使用椭圆工具绘制一个正圆,然后在正圆中绘制四条方向不同的直线即可,如图6所示:图64云彩的制作:既然是空战,天空中当然少不了白云,并且适当的在游戏中加入白云这样的对象,可以使游戏更生动和逼真,游戏中的白云是使用Action动作脚本随机复制并进行控制的,所以这里我们新建一个Movie clip元件,命名为mCloud,进入元件编辑状态后,使用铅笔工具的Ink绘制模式,绘制一个弯曲的闭合区域,并将图层延续到第5祯,如图7所示:图7接下来需要添加复制和控制白云的Action动作脚本,新建一个图层,分别在第1,3,5三祯插入三个关键祯,给第一祯添加如下AS:this._x = 575;this._y = 30+random(300);speed = 2+random(5);给第3祯添加如下AS:this._x -= speed;给第5祯添加如下AS:if (this._x-35) _root.numCloud-;this.removeMovieClip(); else gotoAndPlay (_currentframe-2);5.飞机被击落的效果:游戏中飞机如果被击落,如果简单的来做,只需要设置飞机消失即可,不过为了增强游戏的观赏性,我们这里专门来设计以下飞机被击落的效果,而且会带有爆炸的声音。新建一个Movie clip元件,命名为mDown,进入元件的编辑状态后,首先添加三个图层分别为down,planedown和explord,在图层explord的第一祯绘制一个如图8所示的多角形,并填充上适当的颜色:图8然后在第3祯插入一个关键祯,在属性面板上设置此多角形的Alpha透明度值为15%,最后建立第1到第3祯的Motion运动过渡,这样就实现了飞机被击中的瞬间爆炸的效果。接下来制作飞机下落的效果。在图层planedown的第2祯插入一个关键祯,将元件Mplane拖进编辑区,使用旋转工具将飞机旋转90度,使飞机头冲下,然后在第10祯插入一个关键祯,将飞机向下移动一段直线距离,并适当降低飞机的Alpha透明度值,最后建立第2祯到第10祯的Motion运动过渡效果,这样飞机被击中后下落并消失的效果也有了。不过如果飞机在下落过程中, 能有冒烟的效果就更完美了。所以我们在图层down的第4祯插入一个关键祯,然后使用椭圆工具绘制个竖直的扁椭圆,并填充上黑色,在第10祯插入关键祯,调整椭园的形状并设置降低其透明度,同样建立一个Motion运动过渡效果。然后插入一个图层sound,用来设置飞机下落的声音效果,从外部导入一个爆炸的音效,然后选中图层sound,从属性面板的sound下拉列表中选择所导如的身影,最后将此层也延续到第10祯,时间线如图9所示:图9最后还要添加一些Action动作脚本对其加以控制。新建一个图层ACTION,在第1,2,和10祯分别插入一个关键祯,然后给第一祯添加如下AS:this._x = _root.expX;this._y = _root.expY;给第2祯添加如下AS:this._x=_root.expX;this._y=_root.expY;给第10祯添加如下As:this.removeMovieClip();6.制作记时器:游戏是有一定时间控制的,所以还需要添加一个记时器,使用动态文本可以方便的实现,新建一个Movie clip元件,命名为mTime,在元件编辑状态下,使用文本工具绘制一个矩形文本框,然后在属性面板中设置其为Dynamic动态文本,这样就可以用Action对其中的内容加以控制了,设置其变量名为rTime,然后在文本框前面输入提示信息,如图10所示:图10然后新建一个层,在第一祯添加如下AS:now = new Date();/新建一个Date对象startTime = now.getTime();/设置开始时间为系统时间playTime = _root.playTime;rTime = playTime;在第三祯添加如下AS:now = new Date();currentTime = now.getTime();rTime = playTime-int(currentTime-startTime)/1000);if (!rTime) _root.gotoAndPlay(reStart);stop ();/显示并控制记时器中的时间在第5祯添加如下AS:gotoAndPlay (_currentframe-2);到此为止,游戏中需要的元件大部分准备好了,下面就可以开始布置主场景了。二:布置主场景1首先将默认图层layer1重命名为background,使用矩形工具绘制一个和舞台一样大小的矩形,并填充上天蓝色,将图层延续到第50祯。2新建两个图层分别为start和gun,在start图层上用来设置游戏的开始界面,使用文本工具输入游戏的名称,并将瞄准器放置到图层gun 中,并在属性面板中设置瞄准器的Instance name为pointer,如图11所示:图113在图层gun的第22祯插入关键祯,输入游戏时间已到的消息,如图12所示;图124新建一个图层命名为score&time,用来放置记分器和记时器,将记时器mTime放到舞台下面靠右的位置,然后在下面靠左的位置绘制一个动态文本框,设置其变量名为score,用来记录游戏的得分,如图13所示:图13三:给游戏添加Action动作脚本最后的游戏就是添加Action动作脚本了。新建一个图层,命名为ACTION,设置第2祯的祯标签为start, 设置第9祯的祯标签为dup, 设置第15祯的祯标签为gotoDup, 设置第22祯的祯标签为reStart.在第一祯添加如下AS:Mouse.hide();startDrag(/pointer, true);/游戏开始前,首先隐藏鼠标,然后使瞄准器变为可拖动状态sShoot = new Sound();sShoot.attachSound(sShoot);/新建一个sound声音对象,然后从外部导入射击的音效Sshoot,使用attachsound方/法将此声音绑定sExp = new Sound();sExp.attachSound(sExp);/新建一个sound声音对象,然后从外部导入射击的音效Sexp,使用attachsound方/法将此声音绑定stop();在第2祯添加如下AS:score = 0;/设置初始得分为0playTime = 100;/设置游戏时间为100秒var expX;var expY;/定义两变量,代表飞机的坐标cDepth = 100;pDepth = 0;numPlane = 0;numCloud = 0;/定义变量,分别代表飞机和云的深度和数量_root.attachMovie(mP, pointer, 300);startDrag(/pointer, true);在第9祯添加如下AS:if (Math.random()0.2 & numCloud5) numCloud+;_root.attachMovie(mCloud, c+cDepth, cDepth);cDepth = (+cDepth)%100+100;/复制白云if (Math.random()0.3 & numPlane7) _root.attachMovie(mPlane+(1+random(3), P+pDepth, pDepth);numPlane+;with (eval(/p+pDepth) _x = -20-random(120);_y = 150+random(60);pDepth = (+pDepth)%100;/复制飞机,并使用随机函数设置飞机出现的坐标在第15祯添加如下AS:gotoAndPlay(Dup);/返回到祯Dup复制飞机在第22祯添加如下AS:_root.pointer.removeMovieClip();/游戏结束后,从游戏中删除瞄准器在第50祯添加如下A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山西财贸职业技术学院高职单招(数学)历年真题考点含答案解析
- 2025年安阳幼儿师范高等专科学校高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年安庆职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 烤肉餐饮类模板
- 心理健康教育自我认识
- 根管预备护理配合
- 人教版数学小学六年级下册《第七课图形与位置》练习
- 山东建筑大学《水工钢筋混凝土结构及钢结构》2023-2024学年第二学期期末试卷
- 温州职业技术学院《周易》2023-2024学年第二学期期末试卷
- 2025年甘肃省定西市岷县二中高三英语试题第四次月考试卷含解析
- 天津市南开区2024-2025学年高三下学期质量监测(一)地理试卷(原卷版+解析版)
- 【原创】学校书记中央八项规定精神学习心得
- 2025年商丘职业技术学院单招职业技能考试题库含答案
- 2025年榆林城市投资经营集团有限公司招聘笔试参考题库含答案解析
- 液氯钢瓶应急堵漏工具操作指导规程
- 自然辩证法知到课后答案智慧树章节测试答案2025年春浙江大学
- 2025新人教版七年级历史下教案-第20课 明清时期社会经济的发展
- 股份制合作协议及企业章程草案
- 第二节欧洲西部
- 一年级100道口算题
- 天猫淘宝店铺运营每日巡店必做的事
评论
0/150
提交评论