Skip to main content
Known Participant
March 21, 2016
Answered

Hello! Can anybody please help me to optimized my code?

  • March 21, 2016
  • 1 reply
  • 421 views

var enemy1Array:Array = new Array();

var shotA:Array=[];

var shotB:Array=[];

var damage:int = 4;

var damage1:int = 2;

for (var f1:int = numChildren - 1; f1 >= 0; f1--)

  {

         var child1:DisplayObject = getChildAt(f1);

         if (child1.name.indexOf("enemy")>-1)

     {

       enemy1Array.push(MovieClip(child1));

       MovieClip(child1).hitPoints=4;

    MovieClip(child1).gotoAndStop(+MovieClip(child1).hitPoints);

     }

  }

stage.addEventListener(Event.ENTER_FRAME,gameloop);

function gameloop(event:Event):void

{

for(var i:int=shotA.length-1;i>=0;i--)

  {

      shotA.x +=20;

      for(var q:int=enemy1Array.length-1;q>=0;q--)

      {

            if (enemy1Array.hitTestPoint(shotA.x , shotA.y-30))

              {

                     enemy1Array.hitPoints-=damage;

                      if (enemy1Array.hitPoints <= 0)

                          {

                              enemy1Array.parent.removeChild(enemy1Array);

                              enemy1Array.splice(q,1);

                          }

               }

     }

  }

for(var b:int=shotB.length-1;b>=0;b--)

  {

      shotB.x +=20;

      for(var qb:int=enemy1Array.length-1;qb>=0;qb--)

      {

            if (enemy1Array[qb].hitTestPoint(shotB.x , shotB.y-30))

              {

                     enemy1Array[qb].hitPoints-=damage1;

                      if (enemy1Array[qb].hitPoints <= 0)

                          {

                              enemy1Array[qb].parent.removeChild(enemy1Array[qb]);

                              enemy1Array.splice(qb,1);

                          }

               }

     }

  }

}

This topic has been closed for replies.
Correct answer kglad

no, that looks ok.

if those objects bitmaps aren't changing you'll get a significant benefit by enabling their cacheAsBitmap property.

1 reply

kglad
Community Expert
Community Expert
March 22, 2016

you should be splicing our shots when they hit an enemy and/or leave the stage.

Known Participant
March 22, 2016

if i want to make my enemies moving its necessary to add this in gameloop

  for(var q1:int=enemy1Array.length-1;q1>=0;q1--)

      {

           enemy1Array[q1].x -=10; 

      }

or there is a better way?

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
March 22, 2016

no, that looks ok.

if those objects bitmaps aren't changing you'll get a significant benefit by enabling their cacheAsBitmap property.