I'm gonna trying to explain as good as I can but, it's really hard to explain. I'm new to AS3 so if you are gonna help me, please help me til we solve it. Please paste code examples instead of just saying how I should do.
Ok. On the main timeline I saying like this.
TIMER HERE THAT ADDS THE ENEMY EVERY SECOND!
var Enemy:MovieClip = new Enemy();
addChild(Enemy);
Enemy.x = 200;
Enemy.y = 200;
ANOTHER TIME THAT ADDS BULLETS EVERY .5 SECONDS!
var Bullet:MovieClip = new Bullet();
addChild(Enemy);
Bullet.x = 400;
Bullet.y = 400;
And then inside Enemy.as and Bullet.as I have code that says how it should travels, what speed etc. But how do I make a hitTest between these? I've tried to do it inside the enemy or bullet class like this.
So I basic asking for how I can hitTest two classes agianst each other? Or the object of a class?
You need to keep a reference on those enemies and bullets. Dont do var enemy:MovieClip = new Enemy(); instead do this.
var myEnemyList:Array = new Array();
var myBulletList:Array = new Array();
function Init():void{
addEventListener(Event.OnEnterFrame, Update);
}
function Update(){
//this will create a bullet and an enemy at every frame
//Create a new enemy
var enemy:Enemy = new Enemy();
myEnemyList.push(enemy); //add enemy to the array
//Create a new bullet
var enemy:Bullet = new Bullet();
myBulletlist.push(bullet);
//Update the bullets
for(var i:int=0; i < myBulletlist.length; i++){
myBulletlist[i].Update(); //you must implement this function inside your class bullet
}
//Update the enemies
for(var i:int=0; i < myEnemyList.length; i++){
myEnemyListt[i].Update(); //you must implement this function inside your class enemy
}
CheckForCollision();
}
function CheckForCollision(){
for(var i:int=0; i < myEnemyList.length; i++){
for(var j:int =0; j < myBulletList.length; j++){
if( myEnemyList[i].collidesWith(myBulletList[j]) ){
//Collision
}
}
}
}
Btw do not try to compile this its pretty much pseudo code. I'll answer questions you have. There's also a lot of tutorials everywhere on this, a little google search would help you get more specific code.