# Help with spaceship game

**URL:** <https://forum.kirupa.com/t/help-with-spaceship-game/294147>\
**Category:** programming\
**Created:** [August 9, 2009, 9:05pm UTC](https://forum.kirupa.com/t/help-with-spaceship-game/294147 "2009-08-09T21:05:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dondkapur](https://avatars.discourse-cdn.com/v4/letter/d/d6d6ee/32.png) [@dondkapur](https://forum.kirupa.com/u/dondkapur)\
**Post date:** [August 9, 2009, 9:05pm UTC](https://forum.kirupa.com/t/help-with-spaceship-game/294147/1 "2009-08-09T21:05:26Z")

</div>

Hey can someone please help me… I am new to actionscript just started a few days ago… or maybe a week…

I tried making a game and have been successful till some extent.

I have made a spaceship, it chases my mouse at every moment, in correct direction and rotation. Then its speed can also be changed by left and right arrow keys. I have also been able to launch missiles/rockets from the ship on mouse clicks. But there is a problem with this last part.

When I launch a second missile then the first missile stops. I have tried various ways but I cannot get through the problem… Please help me with this…

HERE IS THE PART OF THAT CODE:

private function makeMissiles():void  
{  
\_missiles = new Array();  
\_mVX = new Array();  
\_mVY = new Array();  
\_missilesAngleR = new Array();  
\_missilesAngleD = new Array();

var i:Number;

for (i=0; i\< \_maxMissiles; i++)  
{  
var missile:Rocket = new Rocket();  
var mVX:Number = 0;  
var mVY:Number = 0;  
var missilesAngleR:Number = 0;  
var missilesAngleD:Number = 0;  
\_missiles.push(missile);  
\_mVX.push(mVX);  
\_mVY.push(mVY);  
\_missilesAngleR.push(missilesAngleR);  
\_missilesAngleD.push(missilesAngleR);  
}  
}

private function rotateMissile(missile:Rocket, curMX:Number, curMY:Number):Number  
{  
var yComp:Number;  
var xComp:Number;  
var misAngleR:Number;

yComp = curMY - missile.y;  
xComp = curMX - missile.x;

misAngleR = Math.atan2(yComp,xComp);  
return misAngleR;  
}

private function moveMissile(event:Event):void  
{  
\_mVX[\_pos] = \_velMissiles \* Math.cos(\_missilesAngleR[\_pos]);  
\_mVY[\_pos] = \_velMissiles \* Math.sin(\_missilesAngleR[\_pos]);

\_missiles[\_pos].y += \_mVY[\_pos];  
\_missiles[\_pos].x += \_mVX[\_pos];  
}

private function checkMissile():void  
{  
var i:Number;  
var j:Number;

for (i=\_maxMissiles-1, j=1; i\>0; i–,j++)  
{  
\_pos = i;

\_missiles[\_pos].addEventListener(Event.ENTER\_FRAME, moveMissile);  
if (j == \_trigger)  
{  
\_curMissiles --;  
break;  
}  
}  
}

private function shoot(event:MouseEvent):void  
{  
\_trigger ++;  
var curMX:Number = mouseX;  
var curMY:Number = mouseY;

\_missiles[\_curMissiles -1].x = \_ship.x;  
\_missiles[\_curMissiles -1].y = \_ship.y;  
\_missiles[\_curMissiles -1].scaleX = 0.1;  
\_missiles[\_curMissiles -1].scaleY = 0.1;

\_missilesAngleR[\_curMissiles -1] = rotateMissile(\_missiles[\_curMissiles -1], curMX, curMY);

\_missilesAngleD[\_curMissiles -1] = \_missilesAngleR[\_curMissiles -1] \* 180;  
\_missilesAngleD[\_curMissiles -1] = \_missilesAngleD[\_curMissiles -1] / Math.PI;

\_missiles[\_curMissiles -1].rotation = \_missilesAngleD[\_curMissiles -1] ;

addChild(\_missiles[\_curMissiles -1]);  
checkMissile();  
}
