Help needed for school
Hello everyone,
Currently if been busy with AS3 for a schoolproject however I'm facing all kind of problems.. If tried to contact a number of people for help, but neither they can help me with this. If searched my schoolbooks and of course the internet but I cant find anything about my issue.. Therefor I'm desperate and hoping someone on this forum is able to help me.
The current problem with my code is everytime I press the play again button in frame 4 and I restart my game it goes twice as fast. So I asked my teacher and she told me it's something with the EventHandlers but I didn't used them in my code. She's of no help to me currently.. Yes, education over here is worthless in a certain amount.. Personally I think to error lies in this code:
I also get the error called: TypeError: Error #1009 about a null object. It's at the MainTimeline/ enter_frame()..
import flash.text.TextField;
var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
var laser:Laser;
var lazer:Lazer;
lazer = new Lazer();
var spaceBar:Boolean;
var channel:SoundChannel;
channel = new SoundChannel();
var vijand:enemy;
var ship:Personage;
var numberOfKilledEnemies:int = 0;
var localhoogste:SharedObject = SharedObject.getLocal("score");
var showscore:TextField;
var outputnaam:TextField;
var Levens:int = 3;
var shipHalfWidth:uint = ship.width / 2;
var shipHalfHeight:uint = ship.height / 2;
localhoogste.data.score = 0;
ship.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);
function limitStageBorder(ship:MovieClip)
{
if (ship.x + shipHalfWidth > stage.stageWidth)
{
ship.x = stage.stageWidth - shipHalfWidth;
}
else if (ship.x - shipHalfWidth <0)
{
ship.x = 0 + shipHalfWidth;
}
if (ship.y - shipHalfHeight < 0)
{
ship.y = 0 + shipHalfHeight;
}
else if (ship.y + shipHalfHeight > stage.stageHeight)
{
ship.y = stage.stageHeight - shipHalfHeight;
}
}
function fl_MoveInDirectionOfKey_2(event:Event)
{
outputnaam.text = ingevoerdenaam;
if(ship != null)
{
limitStageBorder(ship);
}
if (ship != null && upPressed == true)
{
ship.y -= 5;
}
if (ship != null && downPressed == true)
{
ship.y += 5;
}
if (ship != null && leftPressed == true)
{
ship.x -= 5;
}
if (ship != null && rightPressed == true)
{
ship.x += 5;
}
if (ship != null && vijand == null)
{
vijand = new enemy();
vijand.x = Math.random() * stage.stageWidth;
vijand.y = -10;
stage.addChild(vijand);
}
if (vijand != null)
{
vijand.y = vijand.y + 5;
}
if (vijand && vijand.y > stage.stageHeight)
{
stage.removeChild(vijand);
vijand = null;
}
if (vijand != null && vijand.hitTestObject(ship))
{
ship.gotoAndPlay(6);
vijand.gotoAndPlay(4);
Levens = Levens - 1;
ship = new Personage();
ship.x = Math.random() * stage.stageWidth;
ship.y = stage.stageHeight + ship.height / 2;
stage.addChild(ship);
stage.addChild(vijand);
vijand = null;
}
if (vijand != null && laser != null && vijand.hitTestObject(laser))
{
vijand.gotoAndPlay(4);
stage.removeChild(laser);
vijand = null;
laser = null;
numberOfKilledEnemies = numberOfKilledEnemies + 1;
showscore.text = String(numberOfKilledEnemies);
localhoogste.data.score = numberOfKilledEnemies;
vijand = new enemy();
vijand.x = Math.random() * stage.stageWidth;
vijand.y = -10;
stage.addChild(vijand);
}
}
function fl_SetKeyPressed_2(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP :
{
upPressed = true;
break;
};
case Keyboard.DOWN :
{
downPressed = true;
break;
};
case Keyboard.LEFT :
{
leftPressed = true;
break;
};
case Keyboard.RIGHT :
{
rightPressed = true;
break;
}
}
};
function fl_UnsetKeyPressed_2(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP :
{
upPressed = false;
break;
};
case Keyboard.DOWN :
{
downPressed = false;
break;
};
case Keyboard.LEFT :
{
leftPressed = false;
break;
};
case Keyboard.RIGHT :
{
rightPressed = false;
break;
}
}
};
ship.addEventListener(Event.ENTER_FRAME, enter_frame);
function enter_frame(event:Event):void
{
if (ship.hitTestObject(Blockade))
{
ship.y -= 10;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUP, false, 0, true);
stage.addEventListener(Event.ENTER_FRAME, updateGame, false, 0, true);
stage.addEventListener(Event.ENTER_FRAME, gameOver, false, 0, true);
function onKeyPressed(evt:KeyboardEvent):void
{
switch (evt.keyCode)
{
case Keyboard.SPACE :
spaceBar = true;
break;
}
}
function onKeyUP(evt:KeyboardEvent):void
{
switch (evt.keyCode)
{
case Keyboard.SPACE :
spaceBar = false;
break;
}
}
function updateGame(evt:Event):void
{
if (spaceBar)
{
if (laser == null)
{
laser = new Laser();
laser.x = ship.x;
laser.y = ship.y - 40;
stage.addChild(laser);
channel = lazer.play();
}
}
if (laser != null)
{
laser.y = laser.y - 10;
}
if (laser && laser.y <= 0)
{
stage.removeChild(laser);
laser = null;
}
showlife.text = String(Levens);
}
function gameOver(evt:Event):void
{
if (Levens < 1)
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUP);
stage.removeEventListener(Event.ENTER_FRAME, updateGame);
ship.removeEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);
stage.removeEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);
stage.removeEventListener(Event.ENTER_FRAME, gameOver);
{
if (vijand != null)
{
stage.removeChild(vijand);
vijand = null;
}
if (ship != null)
{
stage.removeChild(ship);
ship = null;
}
if (laser != null)
{
stage.removeChild(laser);
laser = null;
}
}
gotoAndStop(4);
}
}