2005/12/14 | 射击类游戏的开发过程(Flash)(九)
类别(Flash) | 评论(0) | 阅读(134) | 发表于 14:54
10、敌机发射子弹

原理是同我方飞机发射子弹相同的,这里写了一个发射的函数:

function enemyBullets(enemy)
{
  j++;//
  laser.start();
  var newname = "ebullet" + j;
 //子弹的加载名称
  _root.attachMovie("bullet", newname, j*400);
  _root[newname]._y = enemy._y + 8.5;
  _root[newname]._x = enemy._x;
//子弹的初始位置,这要根据它的飞机的位置来确定,而这个函数的参数传递的是飞机这个
//对象。
//下面是是让子弹飞行:如果碰撞后者飞出界后就删掉子弹,
  _root[newname].onEnterFrame = function()
  {
    if (paused == false)
    {
      var bullet_speed = 9;
 
      this._x -= bullet_speed;
 
      if (this._x < 0)
      {
        this.removeMovieClip();
      }
 
      if (this.hitTest(_root.hero))
      {
        explode.start();
        _root.gotoAndStop(2);
      }
    }
  }
}
函数的功能实现了,但是什么时候让他发射子弹呢?这里用到了一个setInterval函数。他的功能限制了

子弹的发射的频率。也就是执行enemyBullets函数的时间间隔。

shoot = setInterval(_root.enemyBullets, interval, this);

参数interval是指的执行的时间间隔,this是所要传递的参数。
如果要清除时间间隔:

clearInterval(shoot);

主要用到了gameover了以后

到此,一个射击类的游戏的开发基本就完成了。当然还有很多的需要改进的地方,有的地方的代码还可以优化,我所要做的就是做到最小,让他能在pda psp 或者手机一类的载体上运行。这是做这个东西的目的也是用Flash制作游戏的长处所在
------------------------------
见解肤浅,请多指教 :)
0

评论Comments

日志分类
首页[185]
Flash[123]
ColdFusion[2]
Flex[2]
FlashMedia[3]
RIA[4]
Other[43]
Python[0]
Design[8]