欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Flash入门必备Flash开发AS代码之游戏制作过程例子.docx

    • 资源ID:9676216       资源大小:427.13KB        全文页数:27页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Flash入门必备Flash开发AS代码之游戏制作过程例子.docx

    1、Flash入门必备Flash开发AS代码之游戏制作过程例子As3游戏制作郑重声明这不是什么教程,说教对我来说还太遥远,本人只是个菜鸟,老鸟们不要见笑。这里是一个简单的游戏的制作过程(谈不上开发),在这里我把一些简单的知识做个总结;这是本人第一次在网上写一些东西,我会努力做到最好的;好了,废话不说了(*_*) 嘻嘻进入正题。(本内容部分素材和知识来自风云II系列丛书)概述:本游戏涉及的主要知识点:1,游戏控制:本人大胆的把游戏控制分为了鼠标控制和键盘控制,本游戏中只涉及到了鼠标控制,但在整个游戏制作完成后,本人会补充键盘控制的内容。2,物件的创建和销毁:在游戏中,不可能所用的角色都事先拖放到舞台

    2、,大多数情况需要用代码随机的产生并加入到舞台;当然,我们有时候并不希望我们加入的元素一直存在在舞台上,我们希望在特定的时间和特定的条件下删掉我们的元素。3,碰撞检测:几乎所有的游戏都需要用到碰撞检测,本游戏用的是Object.hitTestObject(Object);还有一个常用的是object.hitTestPoint(x,y,Boolean);4,事件:As3的事件不是一两句话可以说的清楚的,本游戏用到的事件都是一些常用的事件,如计时器Timer,还有一些零碎的知识,这里就不一一的列举出来;详细的内容见下。一:游戏介绍开始画面游戏进行中结束画面二:游戏类的分析与设计: 经过上面对游戏的介

    3、绍,我们很清楚的知道游戏中的元素,它们是: 1,飞机Plan;;2,导弹Missle ;3,生命球AddLife游戏的元素比较简单,下面分别加以分析并设计它们;(在你的磁盘中新建一个flash文档,重命名为”死里逃生.fla”,在该flash文档的同一目录下新建一个文件夹,重命名为“classes”;如下图:)1.飞机应该有的属性:速度speed;生命:life;他还应该能跟随鼠标移动;具体做法如下,新建一个ActionScript文件,代码如下:将上面的actionscript文件保存在classes文件夹中,文件命名为Plan.as ,注意,文件名一点要与类名相同;2,导弹应该有的属性和方

    4、法:角速度:omega,速度:speed,导弹还要求能跟踪飞机。代码如下:将上面的as文件也保存在classes文件夹中,并把该as文件命名为Missle.as注:这些代码有些复杂,希望大家仔细看,理解了就好了。在实现跟踪飞机这一代码块(即onTimerHandler函数),希望大家仔细把flash的坐标系统和Math的三角函数这些知识温习一下。在这里我不太想讲像if语句,swich语句,while,do。while。语句,基本的表达式那些基本的内容,相信学过C的人都会这些的。关于面向对象的一些核心内容:类,属性,方法,接口,继承,多态。我也不想讲,也不能讲,因为我不想误人子弟,我也只是了解这

    5、些知识,希望想了解的同学去看看有关java或c+的教程。那下面接着第三个类:3,生命球应该有的属性和方法:所含的生命值,也就是能给主角加多少生命lifeValue;所显示的时间,也就是生命球能在舞台上显示多久timed;代码如下:将上面的as文件也保存在classes文件夹中,并把该as文件命名为AddLife.as;5,有关元素的类文件都写好了,就差一个文档类了,有关文档类的代码我们稍后再说,上面我们一直是写代码,现在我们来搭建主场景:打开你新建的“死里逃生。fla”文档,如下图搭建场景:注:前面是元素的类型,后面是文件的实例名。“重新开始”按钮下面还覆盖了一个“开始”按钮,实例名为“sta

    6、rt_btn”。6:类库的组成:上图只显示出了与类库连接的原件;分别与我们上面写的类连接在一起;库中还有声音文件,是个爆炸的声音,这个声音的连接属性设置为:与“死里逃生.fla”文档在同一目录下的还有一个背景音乐,背景音乐的名字为:mySong.mp3;注意文件名一定要是mySong.mp3,因为在下面的代码中我用的是这个名字;7:最后我们来写文档类,把整个的代码和元件组织起来。文档类的代码:(此文件比较的繁琐,import语句可以简写,如:import.flash.display.*;import flash.display.event.*;在这里没有采用简写,好让大家方便查阅API);至此

    7、:整个游戏的制作就结束了。结束的目录结构应该如下:Classes文件夹里的文件如下:将上面的as文件也保存在classes文件夹中,并把该as文件命名为Test.as;然后在“死里逃生.fla”文档的文档类后面的方框中填入:classes.Test如下图:修正:在Test类中的第63和第64之间加入如下语句:if (myPlan.life 新建ActionScript文件。写下代码如下:package classes import flash.display.MovieClip; public class Circle extends MovieClip private var speed:i

    8、nt; public function Circle() speed=5; public function moveLeft():void this.x+=speed; public function moveRight():void this.x-=speed; public function moveUp():void this.y-=speed; public function moveDown():void this.y+=speed; 将这个as文件保存在“classes”文件夹中,保存名为“Circle.as”;c : 再点击“键盘控制_1.fla”文档的文件菜单新建ActionS

    9、cript文件。写下代码如下:package classes import flash.display.MovieClip; import flash.events.KeyboardEvent; import flash.ui.Keyboard; public class Test extends MovieClip private var myCircle:Circle; public function Test() myCircle=new Circle(); myCircle.x=400; myCircle.y=300; addChild(myCircle); stage.addEven

    10、tListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler); private function onKeyDownHandler(e:KeyboardEvent):void switch (e.keyCode) case Keyboard.LEFT : myCircle.moveLeft(); break; case Keyboard.RIGHT : myCircle.moveRight(); break; case Keyboard.UP : myCircle.moveUp(); break; case Keyboard.DOWN : myCircl

    11、e.moveDown(); break; if (myCircle.x800-myCircle.width/2) myCircle.x=800-myCircle.width/2; else if (myCircle.x600-myCircle.height/2) myCircle.y=600-myCircle.height/2; else if (myCircle.y新建ActionScript文件。写下代码如下:package classes import flash.display.MovieClip; import flash.events.MouseEvent; import flas

    12、h.ui.Mouse; public class Test extends MovieClip private var myCircle:Circle; public function Test() myCircle=new Circle(); addChild(myCircle); myCircle.x=400; myCircle.y=300; stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); private function onMouseMoveHandler(e:MouseEvent):void Mous

    13、e.hide(); myCircle.x=e.stageX; myCircle.y=e.stageY; d: 点击“鼠标控制_1.fla”文档舞台的空白区,在属性栏中的文档类中填写:classes.Test;如下图所示:f :测试影片,圆能随着鼠标移动;:直接从库中将被控对象拖入舞台(键盘控制);:在您的计算机磁盘中新建一个fla文档,重命名为“键盘控制_2.fla”在这个文档的同一目录新建一个文件夹,重命名为“classes”;双击打开“键盘控制_2.fla”文档。将舞台设置为800*600;在舞台上新建一个影片剪辑(随便画什么,这里就画一个圆),命名为“主角圆”(不是实例名,你可以取其他的

    14、名字)。建好影片剪辑之后,(不要删掉舞台上主角圆的实例)这时库中有刚刚建立的影片剪辑元件而库中同时有它的实例;保存一下;b:点击“键盘控制_2.fla”文档的文件菜单新建ActionScript文件。写下代码如下:package classes import flash.display.MovieClip; import flash.display.Stage; import flash.events.KeyboardEvent; import flash.ui.Keyboard; public class Circle extends MovieClip private var speed:

    15、int; public function Circle() speed=5; this.stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler); private function onKeyDownHandler(e:KeyboardEvent):void switch (e.keyCode) case Keyboard.LEFT : moveLeft(); break; case Keyboard.RIGHT : moveRight(); break; case Keyboard.UP : moveUp(); break

    16、; case Keyboard.DOWN : moveDown(); break; default : break; private function moveLeft():void this,x-=speed; private function moveRight():void this.x+=speed; private function moveUp():void this.y-=speed; private function moveDown():void this.y+=speed; 注意这句:this.stage.addEventListener();舞台中有this的实例时,才能

    17、调用this的stage属性,否则会报错的。将这个as文件保存在“classes”文件夹中,保存名为“Circle.as”;c :切换到“键盘控制_2.fla”文档,在库中的影片剪辑“主角圆”上点击鼠标右键,在弹出的菜单中选择“链接”,之后在弹出的对话框中如下图填写相关的项目:d:测试影片,方向键能控制主角圆的移动;这里就不再啰嗦写”鼠标控制_2.fla”了。相信大家早以多我的啰嗦忍无可忍了。O(_)o总结一下:键盘控制和鼠标控制都需要用stage.addEventListener(,.);文档类可以直接用stage属性,而非文档类要用这个类的实例的stage属性(即this.stage),就

    18、要求事先有实例放在舞台上;(纯属个人总结,正确与否只是本人认证了一下,没有任何官方的说明。您认这种说法错误,可直接略过这段,不要被我误导了。)二物件的创建与销毁物件的创建和销毁比较简单的,大体来说就是在文档类中采用new关键字创建新的对象,然后用addChild()/addChilaAt()加入到容器,当不需要的时候用removeChild()/removeChildAt()从容器中把它删除;当成批产生物件时,for循环结合数组能很好的解决问题。看个实例先,(申明:这个实例来自风云II系列丛书之Flash cs3 ActionScript 3.0游戏开发基础与范例,版权都属原作者所有)这里本人

    19、不篡改原作,只做个搬运工。(1)首先,启动flash cs3;(2)选择 文件新建 菜单命令,选择新建一个ActionScript 3.0文档;(3)保存这个fla文件为Sample7_5.fla;(4)给主场景添加一个背景。修改主场景的帧频为30fps,填写文档类为objclasses。ObjSample,如下图所示;(5)创建一个金币的影片剪辑,保存到库中,在库中选择它,修改它的连接属性为外部类objclasses.Obj,如下图所示,这个金币将是这个例子中动态创建和删除的对象。(6)在fla文件存在的目录下创建objclasses文件夹;(7)在objclasses文件夹中创建Obj.a

    20、s和ObjSample.as两个as 文件(8)编写如下代码清单Obj.as所示的代码:package objclasses import flash.display.MovieClip; import flash.events.Event; / 对象类 public class Obj extends MovieClip / 速度属性 private var speed:Number; function Obj():void speed = 0; this.addEventListener(Event.ENTER_FRAME, onFrameHandler); / 在ENTER_FRAME的

    21、响应函数中随机产生一个速度 / 并使对象按照这个速度向下移动 private function onFrameHandler(event:Event):void speed = Math.floor(Math.random() * 3) + 1; this.y += speed; (9)编写代码清单ObjSample.as所示的代码:package objclasses import flash.display.MovieClip; import flash.utils.Timer; import flash.events.TimerEvent; / 对象例子的类 public class O

    22、bjSample2 extends MovieClip / 声明一个1秒间隔的Timer实例 private var mytimer:Timer = new Timer(1000); / 声明一个存储对象的数组 private var arrObj:Array = new Array(); / 构造函数中添加TIMER事件,并启动该计时器 function ObjSample2():void mytimer.addEventListener(TimerEvent.TIMER, onTimerHandler); mytimer.start(); / TIMER事件响应函数 / 每秒创建一个新对象

    23、,X坐标随机产生 private function onTimerHandler(event:TimerEvent):void var obj:Obj = new Obj(); obj.x = Math.floor(Math.random() * 500) + 25; obj.y = 0; addChild(obj); / 添加到对象数组中 arrObj.push(obj); / 消除Y坐标大于200的对象 for(var i:int=0; i 200) / 从场景中消除 removeChild(arrObji); / 从数组中消除 arrObj.splice(i,1); break; 测试影片可能很多地方没有说清楚。欢迎批评指教。


    注意事项

    本文(Flash入门必备Flash开发AS代码之游戏制作过程例子.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开