基于Actionscript-3.0碰撞检测类游戏设计.doc_第1页
基于Actionscript-3.0碰撞检测类游戏设计.doc_第2页
基于Actionscript-3.0碰撞检测类游戏设计.doc_第3页
基于Actionscript-3.0碰撞检测类游戏设计.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Actionscript 3.0碰撞检测类flash游戏设计摘要:本文利用actionscript3.0中的hitTestObject()方法制作了一个简单碰撞检测类flash游戏。hitTestObject()方法在flash游戏设计中使用频率高,运行速度快,利用它可以设计很多动作类和碰撞检测类flash游戏。关键词:碰撞检测 动作 游戏设计 网络游戏The Game Design of flash game about hitTestBased on Actionscript3.0Abstract:In the paper,it implements a simple flash game about hitTest using the hitTestObject method in actionscript3. hitTestObject method is usually used in flash game design, Running speed.using it we can design many action and hittest flash game.Keyword: hitTest Action game design network game0引言近年来,随着网络游戏产业的不断发展,网络上出现了大量用Actionscript 3.0制作的游戏。一些社交网站也大量使用了Actionscript 3.0制作的交互游戏,如开心网,腾讯QZone和腾讯校友等网站中都有很多利用Actionscript 3.0制作的交互游戏。本文就以Actionscript 3.0为例讲述简单碰撞检测类游戏的设计实现1。1 关键知识简介1.1 事件机制ActionScript 3.0事件模型基于文档对象模型 (DOM) 第3级事件规范,是业界标准的事件处理体系结构,为ActionScript程序员提供了强大而直观的事件处理工具2。程序员可以使用事件侦听器“侦听”代码中的事件对象。“事件侦听器”是编写的用于响应特定事件的函数或方法。要确保程序响应事件,必须将事件侦听器添加到事件目标,或添加到作为事件对象事件流的一部分的任何显示列表对象3。无论何时编写事件侦听器代码,该代码都会采用以下基本结构:function eventResponse(eventObject:EventType):void/ 此处是为响应事件而执行的动作。eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);此代码执行两个操作。首先,它定义一个函数,这是指定为响应事件而执行的动作的方法。接下来,调用源对象的addEventListener()方法,实际上就是为指定事件“订阅”该函数,以便当该事件发生时,执行该函数的动作。当事件实际发生时,事件目标将检查其注册为事件侦听器的所有函数和方法的列表。然后,它依次调用每个对象,以将事件对象作为参数进行传递。1.2 hitTestObject()方法Actionscript3.0利用hitTestObject()方法来检测两个对象(通常为影片剪辑)是否重叠或相撞,如果两个对象相撞后该方法放回值为true,否则为false。在碰撞检测类和动作类游戏中需要用到该方法4。例如下面代码即可用来检测两个对象是否相撞5。if(mc_instance1.hitTestObject(mc_instance2)text1.text=两个对象相撞了!;/其他代码。 2 游戏设计本文打算实现一个空中接水果的游戏,当水果从树上掉下来时,参与游戏人员需要利用篮子接住掉下来的水果。若用户丢失的水果超过一定的数量(比如20个),则游戏失败。或者在丢失的水果超过一定的数量(比如20个)之前接住了要求的水果数量(比如20个),则游戏成功6。3游戏实现为实现该游戏的功能,需制作几个水果影片(如Apple,Strawberry,Pear,Banana,Orange),还需制作一个水果篮影片(如basket_mc)。程序运行过程中由ActionScript脚本控制水果实例从舞台上端往舞台下端坠落,参与游戏者可以用鼠标拖动水果篮(如basket_mc)来接住落下的水果。游戏核心代码如下所示7。import flash.events.Event;import flash.display.MovieClip;var fruitArray:Array=new Array(Apple,Strawberry,Pear,Banana,Orange);var fruitsOnstage:Array=new Array();var fruitsCollected:int=0;var fruitsLost:int=0;for(var i:int=0;i-1;i-)var currentFruit:MovieClip=fruitsOnstagei;currentFruit.y+=currentFruit.speed;if(currentFruit.ystage.stageHeight-currentFruit.height)currentFruit.y=0-currentFruit.height;fruitsLost+;field2_txt.text=Total Fruit Lost: +fruitsLost;if(currentFruit.hitTestObject(basket_mc)fruitsCollected+;removeChild(currentFruit);fruitsOnstage.splice(i,1);field1_txt.text=Total Fruit Collected:+fruitsCollected;if(fruitsCollected=20)basket_mc.gotoAndStop(20); else if(fruitsCollected15)basket_mc.gotoAndStop(15); else if(fruitsCollected10)basket_mc.gotoAndStop(10); else if(fruitsCollected5)basket_mc.gotoAndStop(5);if(fruitsOnstage.length=20)field1_txt.text=Sorry! You have lost too much fruit!;field2_txt.text=;for(var j:int=fruitsOnstage.length-1;j-1;j-)currentFruit=fruitsOnstagej;removeChild(currentFruit);fruitsOnstage.splice(j,1);游戏运行结果如图1所示。图1 游戏运行结果图4总结hitTestObject()方法是actionscript3.0中比较重要的方法,利用该方法可以制作很多动作类和碰撞检测类Flash游戏。参考文献:1吴志华,邱军虎.Flash cs4动画设计与制作M.北京:人民邮电出版社.2009.092马增友,宋敏等.Adobe Flash CS4动画设计与制作标准实训教程M.北京:印刷工业出版社.2011.06.3Keith Peters(著),苏金国,荆涛等译.Flash ActionScript 3.0动画高级教程M.北京:人民邮电出版社.2010.01.4翟宝利.ActionScript 3.0从入门到精通M.北京:化学工业出版社.2009.09.5杨东昱.Flash动画即战力ActionScript 3.0范

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论