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