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制作游戏的长处所在
------------------------------
见解肤浅,请多指教 :)
原理是同我方飞机发射子弹相同的,这里写了一个发射的函数:
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制作游戏的长处所在
------------------------------
见解肤浅,请多指教 :)
回复Comments
作者:
{commentrecontent}