The code i have for my brick breaker game is this one (followed by a tutorial):
The thing is that i can’t get the game to restart with 1 less level when the ball hits the bottom. Anyone knows how to do this? I’ve tried to run the function makeLvl(null); after the part where it says** lives–;** but it still doens’t work.
stop();
var ballXSpeed:Number = 8;
var ballYSpeed:Number = 8;
var brickAmt:int = 0;
var lives:int = 3;
var gameOver:Boolean = false;
var score:int = 0;
function beginCode(event:MouseEvent):void{
stage.removeEventListener(MouseEvent.CLICK, beginCode);
vky.addEventListener(Event.ENTER_FRAME, movePaddle);
bola.addEventListener(Event.ENTER_FRAME, moveBall);
addEventListener(Event.ENTER_FRAME, checkLevel);
txtStart.text = '';
}
function movePaddle(event:Event):void{
vky.x = mouseX - vky.width / 2;
if(mouseX < vky.width / 2){
vky.x = 0;
}
if(mouseX > stage.stageWidth - vky.width / 2){
//Keep the paddle on stage
vky.x = stage.stageWidth - vky.width;
}
}
function moveBall(event:Event):void{
bola.x += ballXSpeed;
bola.y += ballYSpeed;
if(bola.x >= stage.stageWidth-bola.width){
ballXSpeed *= -1;
}
if(bola.x <= 0){
ballXSpeed *= -1;
}
if(bola.y >= stage.stageHeight-bola.height){
ballYSpeed *= -1;
lives --;
if(lives <= 0){
gameOver = true;
vky.removeEventListener(Event.ENTER_FRAME, movePaddle);
bola.removeEventListener(Event.ENTER_FRAME, moveBall);
removeEventListener(Event.ENTER_FRAME, checkLevel);
removeEventListener(Event.ENTER_FRAME, updateTextFields);
gotoAndStop('113');
}
}
if(bola.y <= 0){
ballYSpeed *= -1;
}
if(bola.hitTestObject(vky)){
calcBallAngle();
}
}
function calcBallAngle():void{
var ballPosition:Number = bola.x - vky.x;
var hitPercent:Number = (ballPosition / (vky.width - bola.width)) - .5;
ballXSpeed = hitPercent * 10;
ballYSpeed *= -1;
}
function makeLvl():void{
if(currentLvl > lvlArray.length){
gameOver = true;
vky.removeEventListener(Event.ENTER_FRAME, movePaddle);
bola.removeEventListener(Event.ENTER_FRAME, moveBall);
removeEventListener(Event.ENTER_FRAME, checkLevel);
removeEventListener(Event.ENTER_FRAME, updateTextFields);
gotoAndStop("116");
}
var arrayLength:int = lvlArray[currentLvl-1].length;
var brickRow:int = 0;
for(var i:int = 0;i<arrayLength;i++){
if(lvlArray[currentLvl-1]* == 1){
var brick:Brick = new Brick();
brick.x = 15+(i-brickRow*7)*75;
brick.y = 10+brickRow*20;
for(var c:int = 1;c<=10;c++){
if(i == c*7-1){
brickRow ++;
}
}
addChild(brick);
}
}
}
function checkLevel(event:Event):void{
if(brickAmt == 0){
currentLvl ++;
txtStart.text = "Click To Begin";
makeLvl();
bola.x = 150;
bola.y = 265;
vky.x = 230;
vky.removeEventListener(Event.ENTER_FRAME, movePaddle);
bola.removeEventListener(Event.ENTER_FRAME, moveBall);
removeEventListener(Event.ENTER_FRAME, checkLevel);
stage.addEventListener(MouseEvent.CLICK, beginCode);
}
}
function updateTextFields(event:Event):void{
txtStats.text = "Level: "+currentLvl+" Lives: "+lives+" Score: "+score;
}
stage.addEventListener(MouseEvent.CLICK, beginCode);
txtStart.text = "Click To Begin";
addEventListener(Event.ENTER_FRAME, updateTextFields);
makeLvl();