Search code examples
actionscript-3flash

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


I am learning as3 and I am kind of new to this. I am trying to get my enemy to shoot three bullets and so far I got that part done. However, I am stuck on making them go in different directions and they all just go in one directions instead. Here is an example of the code I am using in 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);
}

the

_enemyFire.enemyBulletMOV(0,5);

is pulling up a function in the EnemyFire Class

public function enemyBulletMOV(MOVx:Number, MOVy:Number)
{
  x = x + MOVx;
  y = y + MOVy;
}

so I figured out that if I did this

 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);

I would get three bullets for the enemy but where I am stuck is this

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

I am stuck on giving each bullet it's own direction. instead they will only go one direction.

_enemyFire.enemyBulletMOV(-5,5);

Solution

  • Add another argument to your EnemyFire constructor:

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

    Then, in your enemyBulletMOV call:

    _enemyFire.enemyBulletMOV(_enemyFire.direction,5);
    

    That way you'll have the direction defined for each bullet.