一个完全使用AS2编制的飞机游戏之制作详解
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
r _x变量获取值的方法 getLaserX() getter 返回_x值 setLaserY(y) setter _y变量获取值的方法 getLaserY() getter 返回_y值 背景类 属性或方法 类型 描述 scroll() method 从右移到左 setBackX(x) setter _x变量获取值的方法 getBackX() getter 返回_x值 setBackY(y) setter _y变量获取值的方法 getBackY() getter 返回_y值 游戏类 属性或方法 类型 描述 score Number 游戏者的得分 lives Number 游戏者的生命数 checkCollisions() method 碰撞检测 CheckLives(lives) method 如果生命值为0就停止游戏。 checkScore() method 检测并展示分数 交互的表格 交互表格述了通过方法传递的信息来符合我们一开始所提出的要求。 我现在对这项计划是否有效没有任何概念,因为我不知道Flash是否能处理组合。 游戏类包含着其它类并且是游戏的管理者。 但是我并不清楚是否能在一个类中控制一个继承于MovieClip类的子类(的实例). 那好,这里就是这计划,让我们看一下它是否能起作用。 计划不是被放在混凝土里的。如果它们无效,你可以把它们扔掉,或者是修改,甚至从草稿重新开始。 最重要的事情是过程。 通过过程来明确问题并呈现给我们处理问题的方法。这就像给电影的情节串连图版. 你草拟出它,呈现出脚本的想法同时也瞄准了观众的需求。 一旦你把这个都搞定了,你就把它扔在了一边并用本能进行着导演。 你知道故事的背景因为你浏览了情节串连图版的过程。这里也是如此: 上面是我画的一个份交互的表格。 我甚至做了一些改变并意识到一些在类表格中里所遗漏的内容。 就像那个moveship方法需要一个方向(左,右,上,下)并且我能过一个变量dir来传递按了哪个键。 dir可以是string类(“left”)或者是一个字母(1,2,3,4).这并不重要。 测试优先: 我新建了一个新的Flash 文件并创建了一个spaceship_mc(mc),把它连接到库里的ship_mc并把“Spaceship”放进连接(link)AS2 CLASS选项中。 然后在交互面板中我写下了下面的代码: //连接spaceship_mc attachMovie("ship_mc", "myShip", getNextHighestDepth()); //声明变量 var enArray:Array; // 现在是空的 var bulletArray:Array; // 空的 var myGame = new Game(myShip , enArray , bulletArray); //游戏循环 _root.onEnterFrame = function(){ myGame.moveShip("right"); } Then I wrote minimal code so that the classes would just compile 然后我写下最少量的代码以致能让它刚好编译 class Game{ //游戏类,控制整个游戏并包含其它类的实例。 // 声明变量 var ship:Spaceship; var enemyArray:Array; var laserArray:Array; (译者注:上面最好用Private加以标明,否则就没有封装的意义了) // 构造函数 function Game(_ship:Spaceship, _enArray:Array, _bullArray:Array){ ship = _ship; enemyArray = _enArray; laserArray = _bullArray; } (译者注:这个函数最好在头前加Public在尾部加:void,这样子就比较正规了。) } 然后在Spaceship.as文件里我这样写: class Spaceship extends MovieClip{ } 然后编译,但是没有错误。 但是那里应该有些错误因为moveShip方法还没有出现?嗯??(译者注:我倒) 在调试中什么也没有出现。 相当讨厌的出错检查。。。噢,好吧。。。 现在我必须写Game.moveShip方法了。。。我会写下它并测试。。。 我写下了moveShip方法并意识到我必须再写一个可以检测哪个键被按下了并传回一个Sring类的dir变量的 chekcKey 方法用以检测按键。 // Game类 // 检测按键的方法: function checkKey():String{ if(Key.isDown(Key.RIGHT)){ dir = "right"; } if(Key.isDown(Key.LEFT)){ dir = "left"; } if(Key.isDown(Key.UP)){ dir = "up"; } if(Key.isDown(Key.DOWN)){ dir = "down"; } return dir; } // |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: flash2004伪3D组件教学及下载下一篇: 调用外部swf定位的问题
关于一个完全使用AS2编制的飞机游戏之制作详解的所有评论