home *** CD-ROM | disk | FTP | other *** search
- package
- {
- import com.kongregate.as3.client.KongregateAPI;
- import flash.display.*;
- import flash.events.*;
- import flash.media.*;
- import flash.net.*;
- import flash.text.TextField;
- import flash.utils.Timer;
-
- public class ZombieGame extends MovieClip
- {
-
-
- internal var blood:BitmapData;
-
- internal var deadZombies:int;
-
- internal var zombies:Array;
-
- internal var channel:SoundChannel;
-
- private var sound:Sound;
-
- internal var keys:Array;
-
- public var mute:MovieClip;
-
- internal var timer:Timer;
-
- public var timeOut:TextField;
-
- public var zombieOut:TextField;
-
- public var out:TextField;
-
- public var healthOut:TextField;
-
- internal var pickups:Array;
-
- internal var blocks:Array;
-
- internal var frames:int;
-
- public var ammoOut:TextField;
-
- private var req:URLRequest;
-
- internal var inited:Boolean;
-
- internal var time:int;
-
- internal var zombieTimer:Timer;
-
- internal var buttonDone:Boolean;
-
- internal var kongregate:KongregateAPI;
-
- internal var player:Player;
-
- internal var gameOver:Boolean;
-
- public function ZombieGame()
- {
- zombies = new Array();
- blocks = new Array();
- pickups = new Array();
- keys = new Array();
- sound = new Sound();
- req = new URLRequest("soundTrack.mp3");
- kongregate = new KongregateAPI();
- super();
- gotoAndStop(3);
- timer = new Timer(1000);
- timer.addEventListener(TimerEvent.TIMER,fps);
- timer.start();
- zombieTimer = new Timer(4000);
- zombieTimer.addEventListener(TimerEvent.TIMER,addZombie);
- zombieTimer.start();
- addChild(kongregate);
- sound.load(req);
- channel = sound.play(0,100);
- buttonDone = false;
- init();
- }
-
- internal function init() : void
- {
- var _loc1_:int = 0;
- var _loc2_:Bullets = null;
- var _loc3_:Health = null;
- var _loc4_:Zombie = null;
- var _loc5_:Block = null;
- stage.removeEventListener(Event.ENTER_FRAME,update);
- stage.removeEventListener(KeyboardEvent.KEY_UP,keyReleased);
- stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
- stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
- stage.addEventListener(KeyboardEvent.KEY_UP,keyReleased);
- stage.addEventListener(Event.ENTER_FRAME,update);
- gameOver = false;
- blood = new BitmapData(720,480,false,16775615);
- addChildAt(new Bitmap(blood),0);
- player = new Player();
- player.x = 100;
- player.y = 100;
- addChild(player);
- addChild(player.gun);
- _loc1_ = 0;
- while(_loc1_ < 10)
- {
- _loc4_ = new Zombie(player,blood);
- zombies.push(_loc4_);
- addChild(_loc4_);
- _loc1_++;
- }
- _loc1_ = 0;
- while(_loc1_ < 8)
- {
- _loc5_ = new Block();
- while(_loc5_.hitTestObject(player))
- {
- _loc5_ = new Block();
- }
- blocks.push(_loc5_);
- addChildAt(_loc5_,1);
- _loc1_++;
- }
- _loc2_ = new Bullets();
- pickups.push(_loc2_);
- _loc2_.init();
- addChild(_loc2_);
- _loc3_ = new Health();
- _loc3_.init();
- pickups.push(_loc3_);
- addChild(_loc3_);
- zombieTimer.start();
- zombieTimer.delay = 4000;
- timer.start();
- }
-
- internal function addZombie(param1:TimerEvent) : *
- {
- var _loc2_:Zombie = null;
- _loc2_ = new Zombie(player,blood);
- zombieTimer.delay -= 20;
- zombies.push(_loc2_);
- addChild(_loc2_);
- }
-
- internal function restart() : void
- {
- var _loc1_:int = 0;
- kongregate.stats.submit("Kills",deadZombies);
- kongregate.stats.submit("Survival Time",time);
- kongregate.stats.submit("Total Kills",deadZombies);
- kongregate.stats.submit("Total Time",time);
- _loc1_ = 0;
- _loc1_ = 0;
- while(_loc1_ < zombies.length)
- {
- removeChild(zombies[_loc1_]);
- _loc1_++;
- }
- _loc1_ = 0;
- while(_loc1_ < blocks.length)
- {
- removeChild(blocks[_loc1_]);
- _loc1_++;
- }
- _loc1_ = 0;
- while(_loc1_ < pickups.length)
- {
- removeChild(pickups[_loc1_]);
- _loc1_++;
- }
- removeChild(player);
- removeChildAt(0);
- zombies = new Array();
- blocks = new Array();
- pickups = new Array();
- keys = new Array();
- time = 0;
- frames = 0;
- deadZombies = 0;
- out.text = "Game Over \n Press H for help, C for credits, or any other key to play again.";
- gameOver = true;
- zombieTimer.stop();
- timer.stop();
- }
-
- internal function muteUnmute(param1:*) : void
- {
- var _loc2_:int = 0;
- _loc2_ = channel.position;
- if(mute.out.text == "Play")
- {
- channel = sound.play(_loc2_);
- mute.out.text = "Pause";
- }
- else
- {
- channel.stop();
- mute.out.text = "Play";
- }
- }
-
- internal function keyPressed(param1:KeyboardEvent) : *
- {
- if(currentFrame != 3)
- {
- gotoAndStop(3);
- out.text = "Game Over \n Press H for help, C for credits, or any other key to play again.";
- }
- else if(gameOver && currentFrame == 3 && param1.keyCode == 72)
- {
- gotoAndStop(2);
- }
- else if(gameOver && currentFrame == 3 && param1.keyCode == 67)
- {
- gotoAndStop(1);
- }
- else if(gameOver)
- {
- init();
- out.text = "";
- }
- keys[param1.keyCode] = true;
- }
-
- internal function update(param1:Event) : *
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:int = 0;
- ++frames;
- if(gameOver)
- {
- out.text = "Game Over \n Press H for help, C for credits, or any other key to play again.";
- }
- if(!buttonDone)
- {
- mute.addEventListener(MouseEvent.MOUSE_DOWN,muteUnmute);
- buttonDone = true;
- }
- ammoOut.text = player.gun.ammo + "";
- healthOut.text = player.health + "";
- zombieOut.text = deadZombies + "";
- player.update(param1);
- _loc2_ = 0;
- while(_loc2_ < zombies.length)
- {
- zombies[_loc2_].update(param1);
- if(zombies[_loc2_].hitTestObject(player))
- {
- zombies[_loc2_].collision(player);
- if(player.health == 0)
- {
- player.die();
- }
- }
- _loc2_++;
- }
- _loc2_ = 0;
- while(_loc2_ < pickups.length)
- {
- if(player.hitTestObject(pickups[_loc2_]))
- {
- pickups[_loc2_].collision(player);
- }
- _loc2_++;
- }
- _loc2_ = 0;
- while(_loc2_ < player.gun.bullets.length)
- {
- _loc3_ = 0;
- while(_loc3_ < zombies.length)
- {
- if(zombies[_loc3_].hitTestObject(player.gun.bullets[_loc2_]))
- {
- zombies[_loc3_].die();
- ++deadZombies;
- player.gun.bullets[_loc2_].die();
- }
- _loc3_++;
- }
- _loc2_++;
- }
- _loc2_ = 0;
- while(_loc2_ < blocks.length)
- {
- if(player.hitTestObject(blocks[_loc2_]))
- {
- blocks[_loc2_].collision(player);
- }
- _loc3_ = 0;
- while(_loc3_ < zombies.length)
- {
- if(zombies[_loc3_].hitTestObject(blocks[_loc2_]))
- {
- blocks[_loc2_].collision(zombies[_loc3_]);
- }
- _loc3_++;
- }
- _loc4_ = 0;
- while(_loc4_ < player.gun.bullets.length)
- {
- if(blocks[_loc2_].hitTestPoint(player.gun.bullets[_loc4_].x,player.gun.bullets[_loc4_].y))
- {
- player.gun.bullets[_loc4_].die();
- }
- _loc4_++;
- }
- _loc3_ = 0;
- while(_loc3_ < pickups.length)
- {
- if(blocks[_loc2_].hitTestObject(pickups[_loc3_]))
- {
- pickups[_loc3_].die();
- }
- _loc3_++;
- }
- _loc2_++;
- }
- player.controls(keys);
- }
-
- internal function keyReleased(param1:KeyboardEvent) : *
- {
- keys[param1.keyCode] = false;
- }
-
- internal function fps(param1:TimerEvent) : *
- {
- ++time;
- timeOut.text = Math.round(time / 60) + ":" + time % 60;
- frames = 0;
- }
- }
- }
-