发新话题
打印

简单飞机代码

简单飞机代码

很菜 ~莫笑

代码

开始();
function 初始化数据() {
速度 = 20;
n = 0;
杀敌数 = 0;
总机数 = 3;
开 = false;
Mouse.hide();
_root.createEmptyMovieClip("飞机层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("子弹层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("敌机层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("敌子弹层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("数据层", _root.getNextHighestDepth());
_root.数据层.createTextField("杀敌数据", _root.数据层.getNextHighestDepth(), 220, 0, 100, 100);
_root.数据层.createTextField("主机数据", _root.数据层.getNextHighestDepth(), 0, 0, 100, 100);
_root.数据层.杀敌数据.selectable = false;
_root.数据层.主机数据.selectable = false;
_root.数据层.杀敌数据.text = "分数:"+杀敌数;
_root.数据层.主机数据.text = "机数:"+总机数;
}
//绘制飞机/////////////////////////////////
function 绘制飞机() {
var 临时飞机 = _root.飞机层.createEmptyMovieClip("飞机", _root.飞机层.getNextHighestDepth());
临时飞机.beginFill(00, 100);
临时飞机.lineStyle(1, 00, 100);
临时飞机.moveTo(0, -7.7);
临时飞机.lineTo(10, 10);
临时飞机.lineTo(0, 6);
临时飞机.lineTo(-10, 10);
临时飞机.moveTo(0, -7.7);
临时飞机.endFill();
临时飞机._alpha = 0;
临时飞机._x = _root._xmouse;
临时飞机._y = _root._ymouse;
临时飞机.onEnterFrame = function() {
  临时飞机._alpha += 5;
  if (临时飞机._alpha>=100) {
   delete 临时飞机.onEnterFrame;
  }
};
}
function 绘制敌子弹(X, Y, 终点X, 终点Y) {
var 临时敌子弹 = _root.敌子弹层.createEmptyMovieClip("敌子弹"+_root.敌子弹层.getNextHighestDepth(), _root.敌子弹层.getNextHighestDepth());
临时敌子弹._x = X;
临时敌子弹._y = Y;
临时敌子弹.lineStyle(3, 0xFF0000, 100);
临时敌子弹.moveTo(0, 0);
临时敌子弹.lineTo(1, 1);
临时敌子弹.endFill();
var fx = 终点X;
var fy = 终点Y;
var 角度 = Math.atan2(fy-临时敌子弹._y, fx-临时敌子弹._x);
临时敌子弹.onEnterFrame = function() {
  临时敌子弹._x += 3*Math.cos(角度);
  临时敌子弹._y += 3*Math.sin(角度);
  if (临时敌子弹._y<=0) {
   临时敌子弹.removeMovieClip();
   delete 临时敌子弹.onEnterFrame;
  }
  if (临时敌子弹._y>=450) {
   临时敌子弹.removeMovieClip();
   delete 临时敌子弹.onEnterFrame;
  }
  if (临时敌子弹._x>=300) {
   临时敌子弹.removeMovieClip();
   delete 临时敌子弹.onEnterFrame;
  }
  if (临时敌子弹._x<=0) {
   临时敌子弹.removeMovieClip();
   delete 临时敌子弹.onEnterFrame;
  }
  for (var i in _root.敌子弹层) {
   var 临时敌子弹 = _root.敌子弹层;
   if (_root.飞机层.飞机.hitTest(临时敌子弹) and _root.飞机层.飞机._alpha>=100) {
    _root.飞机层.飞机.removeMovieClip();
    if (总机数>0) {
     总机数--;
     _root.数据层.主机数据.text = "机数:"+总机数;
     绘制飞机();
     主机 = _root.飞机层.飞机;
    }
    临时敌子弹.removeMovieClip();
    delete 临时敌子弹.onEnterFrame;
   }
  }
};
}
function 绘制敌机() {
var 临时敌机 = _root.敌机层.createEmptyMovieClip("敌机"+_root.敌机层.getNextHighestDepth(), _root.敌机层.getNextHighestDepth());
临时敌机.beginFill(00, 100);
临时敌机.lineStyle(1, 00, 100);
临时敌机.moveTo(0, 0);
临时敌机.lineTo(20, 0);
临时敌机.lineTo(10, 15);
临时敌机.lineTo(0, 0);
临时敌机.endFill();
临时敌机._x = random(200)+50;
临时敌机._y = -10;
var 跑 = 0;
临时敌机.onEnterFrame = function() {
  临时敌机._y += 3;
  if (random(150) == 0) {
   跑 = 0;
  }
  if (random(150) == 1) {
   跑 = 1;
  }
  if (random(150) == 2) {
   跑 = 2;
  }
  if (跑 == 1) {
   临时敌机._x += 2;
  }
  if (跑 == 2) {
   临时敌机._x -= 2;
  }
  if (random(50) == 0) {
   绘制敌子弹(临时敌机._x, 临时敌机._y, 主机._x, 主机._y);
  }
  if (临时敌机._y>=450) {
   临时敌机.removeMovieClip();
   delete 临时敌机.onEnterFrame;
  }
  for (var i in _root.子弹层) {
   var 临时子弹 = _root.子弹层;
   if (临时敌机.hitTest(临时子弹)) {
    临时敌机.removeMovieClip();
    临时子弹.removeMovieClip();
    delete 临时敌机.onEnterFrame;
    杀敌数 += 100;
    _root.数据层.杀敌数据.text = "分数:"+杀敌数;
   }
  }
};
}
绘制飞机();
主机 = _root.飞机层.飞机;
function 绘制子弹() {
var 临时子弹 = _root.子弹层.createEmptyMovieClip("子弹"+_root.子弹层.getNextHighestDepth(), _root.子弹层.getNextHighestDepth());
//trace("子弹:"+"子弹"+_root.子弹层.getNextHighestDepth()+"   深度:"+_root.子弹层.getNextHighestDepth());
临时子弹._x = 主机._x-5;
临时子弹._y = 主机._y-20;
临时子弹.lineStyle(1, 0xFFFF00, 100);
临时子弹.beginFill(0xFFFF00, 100);
临时子弹.lineStyle(1, 00, 100);
临时子弹.moveTo(5, 5);
临时子弹.lineTo(10, 10);
临时子弹.lineTo(0, 10);
临时子弹.lineTo(5, 5);
临时子弹.endFill();
临时子弹.onEnterFrame = function() {
  临时子弹._y -= 10;
  if (临时子弹._y<=-10) {
   临时子弹.removeMovieClip();
   delete 临时子弹.onEnterFrame;
   //trace("删除"+临时子弹);
  }
};
}
///////////////////////////////////////////
_root.onEnterFrame = function() {
主机._x -= (主机._x-(_root._xmouse))/速度;
主机._y -= (主机._y-(_root._ymouse))/速度;
if (开 == true and n++%5 == 0 and 主机.enabled == true) {
  绘制子弹();
}
if (random(20) == 6 and 主机.enabled == true) {
  绘制敌机();
}
if (总机数<2) {
  for (var i in _root) {
   _root.removeMovieClip();
  }
  delete 总机数;
  结束();
}
};
_root.onMouseDown = function() {
开 = true;
};
_root.onMouseUp = function() {
开 = false;
};
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function 开始() {
_root.createEmptyMovieClip("开始层", _root.getNextHighestDepth());
var 开始TXT = _root.开始层.createTextField("开始TXT", _root.开始层.getNextHighestDepth(), 120, 200, 55, 20);
开始TXT.selectable = false;
开始TXT.text = "游戏开始";
开始层.onRelease = function() {
  初始化数据();
  绘制飞机();
  主机 = _root.飞机层.飞机;
  开始层.removeMovieClip();
};
}
function 结束() {
Mouse.show();
_root.createEmptyMovieClip("结束层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("开始层", _root.getNextHighestDepth());
var 结束TXT = _root.结束层.createTextField("结束TXT", _root.结束层.getNextHighestDepth(), 120, 150, 55, 20);
var 开始TXT = _root.开始层.createTextField("开始TXT", _root.开始层.getNextHighestDepth(), 120, 200, 55, 20);
开始TXT.selectable = false;
结束TXT.selectable = false;
结束TXT.text = "游戏结束";
开始TXT.text = "重新开始";
开始层.onRelease = function() {
  初始化数据();
  绘制飞机();
  主机 = _root.飞机层.飞机;
  结束层.removeMovieClip();
  开始层.removeMovieClip();
};
}

附件

飞机.fla (48 KB)

2008-2-13 21:05, 下载次数: 103

飞机.swf (1.72 KB)

2008-2-13 21:05, 下载次数: 130

TOP

楼主太谦虚了吧~

还看出楼主是一位爱国主义者哦 ~用这么多中文~

TOP

回复 #2 WiseJason 的帖子

用很多中文是`因为我不会英语

TOP

回复 #3 原始人 的帖子

不会英语?说笑吧~呵呵~但看得出你懂的代码比我多哦,
下次看到我求救的帖子一定要帮帮忙哦 ~

TOP

回复 #4 WiseJason 的帖子

真的不会英语啊`所以老是进步不了`学历也低``:

TOP

高手~佩服佩服~

TOP

向楼主致敬!
好好学学,我也弄一个飞机的

TOP

变量能用中文呀

TOP

恩,不错呀!!
来个BOSS的动作函数呀!
这往往是飞机游戏的重点,      keke

TOP

你像这样写好搞笑

TOP

TOP

老大~你的飞机是用函数画出来的阿~~这样限制了美术效果的发挥阿。换成MC吧

TOP

发新话题