射击类游戏的开发过程(Flash)(九)

      Flash 2005-12-14 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制作游戏的长处所在
------------------------------
见解肤浅,请多指教 :)
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}