|
 
- 帖子
- 487
- 积分
- 137
- 技术分
- 34
- 在线时间
- 437 小时
- 注册时间
- 2004-2-21
|
1#
发表于 2010-5-19 15:45
| 只看该作者
简单飞机游戏源码-适合新手
方向键左右,空格发射,只实现基本功能。
简单飞机源码.fla (29 KB)
简单飞机源码.swf (1.11 KB)
- //QQ:31559783 AS2.0 2010-05-19
- /////////////////////布置层级机构//////////////////////
- var zidan_mc = _root.createEmptyMovieClip("zidan_mc", _root.getNextHighestDepth());// 装子弹
- var diji_mc = _root.createEmptyMovieClip("diji_mc", _root.getNextHighestDepth());//装敌人
- var zhuji_mc = _root.createEmptyMovieClip("zhuji_mc", _root.getNextHighestDepth());//装主机
- ////////////////////主机控制///////////////////////////////////////////////////////
- var zhuji = zhuji_mc.attachMovie("zhuji_mc", "zhuji_mc", 0);//加载主机到 主机空剪辑
- zhuji._x = Stage.width/2;//主机的初始坐标X=场景宽的一半
- zhuji._y = Stage.height-50;//主机的初始坐标Y=场景高减去50像素
- zhuji.shudu =4;//飞机左右移动速度
- var 间隔 = 0;//子弹间隔计数
- var 子弹数=2//越多越厉害
- var 子弹速度=5//越大越快
- var 子弹发射间隔=10//越小子弹越密集
- zhuji.onEnterFrame = function() {//飞机进入帧事件一直循环运行{}内代码
- if (Key.isDown(Key.LEFT)) {//如果按下左键
- this._x -= this.shudu;//飞机自己的X坐标 左移动自己的速度
- }
- if (Key.isDown(Key.RIGHT)) {////如果按下右键
- this._x += this.shudu;//飞机自己的X坐标 右移动自己的速度
- }
- if (Key.isDown(Key.SPACE)) {//按下空格
- 间隔++;//间隔自加1
- if (间隔>=子弹发射间隔) {//如果间隔大于等于10
- 间隔 = 0//重0开始记数
- var shendu = zidan_mc.getNextHighestDepth()//取得子弹空剪辑内的最高可用深度
- var zhuangzidan=zidan_mc.createEmptyMovieClip("zhuangzidan"+shendu, shendu)//创建一个空的装子弹空剪辑
- for (var i=0;i<子弹数;i++){
- var shendu = zhuangzidan.getNextHighestDepth()//取得装子弹空剪辑内的最高可用深度
- var zidan = zhuangzidan.attachMovie("zidan", "zidan"+shendu, shendu);//加载库子弹到 子弹空剪辑内
- zidan._x=(i*20)-(i*zidan._width/子弹数)//让子弹在主机中间发射
- zhuangzidan._x = this._x-zhuangzidan._width/2//初始子弹坐标X为飞机的X坐标
- zidan._y = this._y-20;//初始子弹坐标Y为飞机的Y坐标减少20像素
- zidan.shidu = 子弹速度;//初始子弹移动速度
- zidan.onEnterFrame = function() {//子弹进入帧事件
- this._y -= this.shidu//子弹按自己的速度移动
- if(this._y<0){//假如子弹超出场景外
- this.removeMovieClip()//删除自己
- }
- for (var n in diji_mc){//循环检测子弹是否和敌机有碰撞
- var mc=diji_mc[n]//取得diji_mc里的每个敌机实例路径
- if(this.hitTest(mc)){//判断子弹和敌机是否有碰撞
- mc.removeMovieClip()//有删除敌机
- this.removeMovieClip()//删除自己
- }
- }
- };
- }
- }
- }
- };
- //////////////////////////////敌机控制/////////////////////////////////////////////////
- diji_mc.onEnterFrame = function() {//飞机空剪辑进入帧
- if(random(20)==0){//如果随机数返回0,就加载一架敌机
- var shendu = diji_mc.getNextHighestDepth()//取得敌机空剪辑内的最高可用深度
- var diji = diji_mc.attachMovie("diji", "diji"+shendu, shendu);//加载库敌机到 敌机空剪辑内
- diji._x = random(Stage.width)
- diji._y = -20;
- diji.shudu=random(4)+3//给敌机速度一个随机属性
- diji.onEnterFrame = function() {//敌机进入帧事件
- this._y += this.shudu;//敌机按自己的速度移动
- if(this._y>Stage.height){//假如自己超出场景外
- this.removeMovieClip()//删除自己
- }
- if(this.hitTest(zhuji._x,zhuji._y,true)){//如果碰到主机的坐标
- zhuji.removeMovieClip()//删除主机
- this.removeMovieClip()//删除自己
- }
- };
- }
- }
复制代码 |
|