ActionScript 3 敌人射击三颗子弹并让它们朝不同的方向移动

ActionScript 3 enemy shooting three bullets and having them go in different directions

我正在学习 as3,对此我有点陌生。我正试图让我的敌人射出三发子弹,到目前为止我已经完成了那部分。然而,我一直坚持让它们朝不同的方向前进,而它们都只是朝一个方向前进。这是我在 as3 中使用的代码示例。

var _enemy:Enemy; 
_enemy = new Enemy(350,500);
addChild(_enemy);
enemyArray.push(_enemy);

for(var i:int = 0; i < enemyArray.length; i++)
{`enter code here`}

var _enemyFire:EnemyFire; 
_enemyFire = new EnemyFire(_enemy.x, _enemy.y);
addChild(_enemyFire);
enemyAmmoArray.push(_enemyFire);

for(var ef:int = 0; ef < enemyAmmoArray.length; ef++)
{
 _enemyFire = enemyAmmoArray[ef];
 _enemyFire.enemyBulletMOV(0,5);
}

_enemyFire.enemyBulletMOV(0,5);

正在 EnemyFire Class

中调用一个函数
public function enemyBulletMOV(MOVx:Number, MOVy:Number)
{
  x = x + MOVx;
  y = y + MOVy;
}

所以我发现如果我这样做

 var _enemyFire:EnemyFire;

 _enemyFire = new EnemyFire(_enemy.x, _enemy.y);
    addChild(_enemyFire);
    enemyAmmoArray.push(_enemyFire);

 _enemyFire = new EnemyFire(_enemy.x, _enemy.y);
    addChild(_enemyFire);
    enemyAmmoArray.push(_enemyFire);

 _enemyFire = new EnemyFire(_enemy.x, _enemy.y);
    addChild(_enemyFire);
    enemyAmmoArray.push(_enemyFire);

我会为敌人打三发子弹,但我被困在这里

_enemyFire.enemyBulletMOV(-5,5);
_enemyFire.enemyBulletMOV(0,5);
_enemyFire.enemyBulletMOV(5,5);

我一直坚持为每颗子弹赋予它自己的方向。相反,他们只会往一个方向走。

_enemyFire.enemyBulletMOV(-5,5);

向您的 EnemyFire 构造函数添加另一个参数:

_enemyFire = new EnemyFire(_enemy.x, _enemy.y, -5);
addChild(_enemyFire);
enemyAmmoArray.push(_enemyFire);

然后,在您的 enemyBulletMOV 调用中:

_enemyFire.enemyBulletMOV(_enemyFire.direction,5);

这样您就可以为每颗子弹定义方向。