Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.display.MovieClip;
- import flash.display.FrameLabel;
- import flash.display.Stage;
- import flash.utils.Timer;
- import flash.events.TimerEvent;
- import flash.events.Event;
- import flash.events.KeyboardEvent;
- import flash.ui.Keyboard;
- import flash.events.MouseEvent;
- import flash.ui.Mouse;
- import fl.motion.easing.Back;
- public class AvoiderGame extends MovieClip
- {
- public var gadjet:Gadjet;
- public var laser:Laser;
- public var coinsArray:Array;
- public var bulletsArray:Array;
- public var newBullet:Bullet;
- public var army:Array;
- public var enemy:Enemy;
- public var gameTimer:Timer;
- public var backG:Background;
- public var grass:Grass;
- public var tile:Tile;
- public var bullet:Bullet;
- public var gadjetIsMoving:Boolean;
- public var leftKeyPressed:Boolean;
- public var rightKeyPressed:Boolean;
- public var upKeyPressed:Boolean;
- public var downKeyPressed:Boolean;
- public var spaceBarPressed:Boolean;
- public var canFire:Boolean;
- // make the jail class available for this class
- public var jail:Jail;
- public function AvoiderGame()
- {
- Mouse.hide();
- var newEnemy = new Enemy(300,200);
- army = new Array();
- army.push( newEnemy );
- addChild( newEnemy );
- gadjet = new Gadjet(125, 240);
- mcGameStage.addChildAt(gadjet, 0);
- leftKeyPressed:Boolean;
- rightKeyPressed:Boolean;
- upKeyPressed:Boolean;
- downKeyPressed:Boolean;
- // instantiate the jail class
- jail = new Jail(50, 195);
- mcGameStage.addChildAt(jail, 1); // add it to the stage at layer 1
- laser = new Laser();
- mcGameStage.addChildAt(laser, 1); // same here
- bulletsArray = new Array();
- newBullet = new Bullet(50, 50);
- grass = new Grass(0, 385);
- mcGameStage.addChildAt(grass, 1); // and here
- tile = new Tile(68, 261);
- mcGameStage.addChildAt(tile, 1); // here too
- backG = new Background(-5,10);
- mcGameStage.addChildAt(backG, 0); // here too, but at layer 0
- gameTimer = new Timer(25);
- gameTimer.addEventListener(TimerEvent.TIMER, onTick);
- gameTimer.start();
- addEventListener(Event.ADDED_TO_STAGE, addedToStage);
- addEventListener(Event.ENTER_FRAME, update);
- }
- public function addedToStage(e:Event):void
- {
- stage.addEventListener(KeyboardEvent.KEY_DOWN, holdingKey);
- stage.addEventListener(KeyboardEvent.KEY_UP, releasedKey);
- }
- public function holdingKey(e:KeyboardEvent):void
- {
- if(e.keyCode == Keyboard.DOWN && jail.Jail2.currentLabel == "damage_5") // left arrow key
- {
- downKeyPressed = true;
- }
- else if(e.keyCode == Keyboard.UP && jail.Jail2.currentLabel == "damage_5") // right arrow key
- {
- upKeyPressed = true;
- }
- else if(e.keyCode == Keyboard.LEFT && jail.Jail2.currentLabel == "damage_5") // up arrow key
- {
- leftKeyPressed = true;
- }
- else if(e.keyCode == Keyboard.RIGHT && jail.Jail2.currentLabel == "damage_5") // down arrow key
- {
- rightKeyPressed = true;
- gadjetIsMoving = true;
- }
- else if(e.keyCode == 32) // space key
- {
- spaceBarPressed = true;
- }
- }
- public function releasedKey(e:KeyboardEvent):void
- {
- //gadjet.gravity = 0;
- if(e.keyCode == Keyboard.DOWN) // left arrow key
- {
- downKeyPressed = false;
- }
- else if(e.keyCode == Keyboard.UP) // right arrow key
- {
- upKeyPressed = false;
- }
- else if(e.keyCode == Keyboard.LEFT) // up arrow key
- {
- leftKeyPressed = false;
- }
- else if(e.keyCode == Keyboard.RIGHT) // down arrow key
- {
- rightKeyPressed = false;
- }
- else if(e.keyCode == 32) // space key
- {
- spaceBarPressed = false;
- }
- }
- public function goToNextLabel(mc:MovieClip):void
- {
- // recorremos todos los labels de mc
- trace(mc.currentLabel);
- for(var i=0; i < mc.currentLabels.length; i++)
- {
- // if currentLabels[i] matches with currentLabel, and currentLabels[i] is not the last...
- if(mc.currentLabel == mc.currentLabels[i].name && i < mc.currentLabels.length - 1)
- {
- // ... go to the next mc label and end the function
- mc.gotoAndStop(mc.currentLabels[i+1].name);
- return;
- }
- }
- }
- public function onTick(timerEvent:TimerEvent):void
- {
- gameClock.addToValue(25);
- if(Math.random()<0.01)
- {
- var randomY:Number = Math.floor(Math.random() * 300) + 50;
- var newEnemy:Enemy = new Enemy(400,randomY);
- army.push(newEnemy);
- addChild(newEnemy);
- gameScore.addToValue(10);
- }
- laser.x = mouseX;
- laser.y = mouseY;
- var gadjetHasBeenHit:Boolean = false;
- var hasCollided:Boolean;
- if(downKeyPressed)
- {
- gadjet.moveABit(0, 2);
- }
- else if(upKeyPressed)
- {
- gadjet.moveABit(0, -2);
- }
- else if(leftKeyPressed)
- {
- gadjet.moveABit(-2, 0);
- }
- else if(rightKeyPressed)
- {
- gadjet.moveABit(2, 0);
- }
- else if(spaceBarPressed)
- {
- canFire = true;
- }
- // for each enemy that is in the enemy array
- for each(var enemy:Enemy in army)
- {
- // move the enemy
- enemy.moveDownABit();
- // if we collided with the enemy
- if(PixelPerfectCollisionDetection.isColliding(gadjet,enemy,this,true))
- {
- // stop counting every 25 miliseconds
- gameTimer.stop();
- gadjetHasBeenHit = true; // set this value to true
- }
- if(gadjetHasBeenHit) // if true
- {
- coinsArray.length = 0; // the array lenght of the coins will be equal to 0
- army.length = 0; // the army lenght too
- dispatchEvent(new GadjetEvent(GadjetEvent.DEAD)); // when this event is dispatched the GameOverScreen is displayed
- }
- }
- for each(var enemy:Enemy in army)
- {
- if(PixelPerfectCollisionDetection.isColliding(jail,enemy,this,true))
- {
- removeChild(enemy);
- goToNextLabel(jail.Jail2);
- }
- }
- if(PixelPerfectCollisionDetection.isColliding(laser,enemy,this,true))
- {
- enemy.visible = false;
- trace("You collided with the blade");
- return;
- }
- // if gadjet is moving right
- if(gadjetIsMoving)
- {
- backG.moveBackground();
- grass.moveGrass();
- tile.moveTile();
- }
- }
- public function update(e:Event):void
- {
- if(canFire == true)
- {
- trace("The two statements are true");
- var newBullet:Bullet;
- newBullet = new Bullet(gadjet.x, gadjet.y);
- bulletsArray.push(newBullet);
- mcGameStage.addChild(newBullet);
- newBullet.firebullet(); /* as long as this function is executing inside an enter frame's event
- it will make the bullet look moving */
- // this is the Bullet's class firebullet() function
- /*public function firebullet():void
- {
- x = x + 5; // this makes the bullet look moving when using an ENTER_FRAME event
- }*/
- }
- }
- public function getFinalScore():Number
- {
- return gameScore.currentValue;
- }
- public function getFinalClockTime():Number
- {
- return gameClock.currentValue;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment