here's the code:
this part is in the constructor:
Actionscript Code:
var level:Array = new Array();
for(var i = 0; i<numChildren; i++){
if(getChildAt(i) is platform)
{
level.push(getChildAt(i).getRect(this));
}
}
addEventListener(Event.ENTER_FRAME, loop);
addEventListener(Event.ENTER_FRAME, nextLevel);
here's the collision test
Actionscript Code:
function loop(e:Event){
if(kLeft)
{
speedX = -10;
}else if(kRight)
{
speedX = 10;
}else
{
speedX*=0.5;
}
player.x+=speedX;
for(var i = 0; i<level.length; i++)
{
if(player.getRect(this).intersects(level[i]))
{
if(speedX > 0)
{
player.x = level[i].left-player.width/2;
}
if(speedX < 0)
{
player.x = level[i].right+player.width/2;
}
speedX = 0;
}
}
speedY+=1;
player.y+=speedY;
var jumpable= false;
for(i = 0; i<level.length; i++)
{
if(player.getRect(this).intersects(level[i]))
{
if(speedY >0)
{
player.y = level[i].top-player.height/2;
speedY = 0;
jumpable= true;
}
if(speedY <0)
{
player.y = level[i].bottom+player.height/2;
speedY*=-0.5;
}
speedX = 0;
}
if(kUp && jumpable)
{
speedY = -15;
}
}
}
and the function to go to the next level
Actionscript Code:
function nextLevel(e:Event):void{
if(player.hitTestObject(door)){
nextFrame();
}
}
'door' and 'player' are movieclips