Hello there.
I know close to nothing about arrays.
What im trying to do is push the enemies into an array and from enemy class the HP of enemys comes.
But after 2-3 hours of trying, the second enemy spawns and first dissapears without taking damage.
This is the code from main timeline:
stop();
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.display.Sprite;
import fl.motion.DynamicMatrix;
import flashx.textLayout.accessibility.TextAccImpl;
import flash.display.Sprite;
import flash.display.Shape;
import flash.ui.Mouse;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
var Enemy1MC=MovieClip;
Enemy1MC=new Enemy11();
var enemy1Array;
enemy1Array=new Array();
addEventListener(Event.ENTER_FRAME, enemy1array)
function enemy1array(event:Event):void
{
for(var i=0; i<enemy1Array.length; i++)
{
enemy1Array*.push(Enemy1MC);
}
}
var enemy1Timer:Timer;
enemy1Timer=new Timer(2000,1);
enemy1Timer.addEventListener(TimerEvent.TIMER, enemy1spawn);
enemy1Timer.start();
function enemy1spawn(event:TimerEvent):void
{
Enemy1MC.x=200;
Enemy1MC.y=135;
addChildAt(Enemy1MC, 5);
Enemy1MC.scaleX=25/100;
Enemy1MC.scaleY=25/100;
Enemy1MC.gotoAndPlay(1);
}
var enemy1Timer2:Timer;
enemy1Timer2=new Timer(5000,1);
enemy1Timer2.addEventListener(TimerEvent.TIMER, enemy1spawn2);
enemy1Timer2.start();
function enemy1spawn2(event:TimerEvent):void
{
Enemy1MC.x=400;
Enemy1MC.y=200;
addChildAt(Enemy1MC, 5);
Enemy1MC.scaleX=25/100;
Enemy1MC.scaleY=25/100;
Enemy1MC.gotoAndPlay(1);
}
So after 5 seconds the second “enemy1” appears but the first one disappears like they arent in any array.
I also have a problem that i checked (when i hit CTRL-ENTER) is that if i damage one enemy the second one that spawns start from the hp left from first one.
The damage code i have writen in the enemy class file:
package
{
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.display.Sprite;
import fl.motion.DynamicMatrix;
import flashx.textLayout.accessibility.TextAccImpl;
import flash.display.Sprite;
import flash.display.Shape;
import flash.ui.Mouse;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
public class Enemy11 extends MovieClip
{
var _root:Object;
var Enemy1HP:Number=15;
var weapon1DMG:Number=5;
var weapon2DMG:Number=3;
var fistDMG:Number=50;
public function Enemy11()
{
addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function onAdded(event:Event):void
{
gotoAndStop(1);
_root=MovieClip(root);
addEventListener(Event.ENTER_FRAME, DamageTaken);
}
public function DamageTaken(event:Event):void
{
trace(Enemy1HP);
if(this.currentFrame<47)
{
this.scaleX=25/100 + this.currentFrame/50;
this.scaleY=25/100 + this.currentFrame/50;
}
if(_root.weapon1==true)
{
if(this.hitTestPoint(_root.aim.x, _root.aim.y, true) && _root.aim.currentFrame==7 ||this.hitTestPoint(_root.aim.x, _root.aim.y, true) && _root.aim.currentFrame==13 ||this.hitTestPoint(_root.aim.x, _root.aim.y, true) && _root.aim.currentFrame==19)
{
Enemy1HP-=weapon1DMG;
}
}
if(_root.weapon2==true)
{
if(this.hitTestPoint(_root.aim.x, _root.aim.y, true) && _root.aim.currentFrame==27 ||this.hitTestPoint(_root.aim.x, _root.aim.y, true) && _root.aim.currentFrame==35 ||this.hitTestPoint(_root.aim.x, _root.aim.y, true) && _root.aim.currentFrame==43)
{
Enemy1HP-=weapon2DMG;
}
}
if(_root.fist.currentFrame==3)
{
Enemy1HP-=fistDMG;
}
if(Enemy1HP<0)
{
Enemy1HP=0;
this.gotoAndPlay(61);
}
if(this.currentFrame==72)
{
parent.removeChild(this);
}
if(this.currentFrame==60)
{
this.gotoAndPlay(48);
}
}
}
}
I figure if the enemies are pushed correctly into an array the HP of enemies will be solved by itself but im not sure.
Thanks in advance for any response.