home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Survival.swf / scripts / ZombieGame.as < prev   
Encoding:
Text File  |  2008-09-04  |  9.5 KB  |  340 lines

  1. package
  2. {
  3.    import com.kongregate.as3.client.KongregateAPI;
  4.    import flash.display.*;
  5.    import flash.events.*;
  6.    import flash.media.*;
  7.    import flash.net.*;
  8.    import flash.text.TextField;
  9.    import flash.utils.Timer;
  10.    
  11.    public class ZombieGame extends MovieClip
  12.    {
  13.        
  14.       
  15.       internal var blood:BitmapData;
  16.       
  17.       internal var deadZombies:int;
  18.       
  19.       internal var zombies:Array;
  20.       
  21.       internal var channel:SoundChannel;
  22.       
  23.       private var sound:Sound;
  24.       
  25.       internal var keys:Array;
  26.       
  27.       public var mute:MovieClip;
  28.       
  29.       internal var timer:Timer;
  30.       
  31.       public var timeOut:TextField;
  32.       
  33.       public var zombieOut:TextField;
  34.       
  35.       public var out:TextField;
  36.       
  37.       public var healthOut:TextField;
  38.       
  39.       internal var pickups:Array;
  40.       
  41.       internal var blocks:Array;
  42.       
  43.       internal var frames:int;
  44.       
  45.       public var ammoOut:TextField;
  46.       
  47.       private var req:URLRequest;
  48.       
  49.       internal var inited:Boolean;
  50.       
  51.       internal var time:int;
  52.       
  53.       internal var zombieTimer:Timer;
  54.       
  55.       internal var buttonDone:Boolean;
  56.       
  57.       internal var kongregate:KongregateAPI;
  58.       
  59.       internal var player:Player;
  60.       
  61.       internal var gameOver:Boolean;
  62.       
  63.       public function ZombieGame()
  64.       {
  65.          zombies = new Array();
  66.          blocks = new Array();
  67.          pickups = new Array();
  68.          keys = new Array();
  69.          sound = new Sound();
  70.          req = new URLRequest("soundTrack.mp3");
  71.          kongregate = new KongregateAPI();
  72.          super();
  73.          gotoAndStop(3);
  74.          timer = new Timer(1000);
  75.          timer.addEventListener(TimerEvent.TIMER,fps);
  76.          timer.start();
  77.          zombieTimer = new Timer(4000);
  78.          zombieTimer.addEventListener(TimerEvent.TIMER,addZombie);
  79.          zombieTimer.start();
  80.          addChild(kongregate);
  81.          sound.load(req);
  82.          channel = sound.play(0,100);
  83.          buttonDone = false;
  84.          init();
  85.       }
  86.       
  87.       internal function init() : void
  88.       {
  89.          var _loc1_:int = 0;
  90.          var _loc2_:Bullets = null;
  91.          var _loc3_:Health = null;
  92.          var _loc4_:Zombie = null;
  93.          var _loc5_:Block = null;
  94.          stage.removeEventListener(Event.ENTER_FRAME,update);
  95.          stage.removeEventListener(KeyboardEvent.KEY_UP,keyReleased);
  96.          stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
  97.          stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
  98.          stage.addEventListener(KeyboardEvent.KEY_UP,keyReleased);
  99.          stage.addEventListener(Event.ENTER_FRAME,update);
  100.          gameOver = false;
  101.          blood = new BitmapData(720,480,false,16775615);
  102.          addChildAt(new Bitmap(blood),0);
  103.          player = new Player();
  104.          player.x = 100;
  105.          player.y = 100;
  106.          addChild(player);
  107.          addChild(player.gun);
  108.          _loc1_ = 0;
  109.          while(_loc1_ < 10)
  110.          {
  111.             _loc4_ = new Zombie(player,blood);
  112.             zombies.push(_loc4_);
  113.             addChild(_loc4_);
  114.             _loc1_++;
  115.          }
  116.          _loc1_ = 0;
  117.          while(_loc1_ < 8)
  118.          {
  119.             _loc5_ = new Block();
  120.             while(_loc5_.hitTestObject(player))
  121.             {
  122.                _loc5_ = new Block();
  123.             }
  124.             blocks.push(_loc5_);
  125.             addChildAt(_loc5_,1);
  126.             _loc1_++;
  127.          }
  128.          _loc2_ = new Bullets();
  129.          pickups.push(_loc2_);
  130.          _loc2_.init();
  131.          addChild(_loc2_);
  132.          _loc3_ = new Health();
  133.          _loc3_.init();
  134.          pickups.push(_loc3_);
  135.          addChild(_loc3_);
  136.          zombieTimer.start();
  137.          zombieTimer.delay = 4000;
  138.          timer.start();
  139.       }
  140.       
  141.       internal function addZombie(param1:TimerEvent) : *
  142.       {
  143.          var _loc2_:Zombie = null;
  144.          _loc2_ = new Zombie(player,blood);
  145.          zombieTimer.delay -= 20;
  146.          zombies.push(_loc2_);
  147.          addChild(_loc2_);
  148.       }
  149.       
  150.       internal function restart() : void
  151.       {
  152.          var _loc1_:int = 0;
  153.          kongregate.stats.submit("Kills",deadZombies);
  154.          kongregate.stats.submit("Survival Time",time);
  155.          kongregate.stats.submit("Total Kills",deadZombies);
  156.          kongregate.stats.submit("Total Time",time);
  157.          _loc1_ = 0;
  158.          _loc1_ = 0;
  159.          while(_loc1_ < zombies.length)
  160.          {
  161.             removeChild(zombies[_loc1_]);
  162.             _loc1_++;
  163.          }
  164.          _loc1_ = 0;
  165.          while(_loc1_ < blocks.length)
  166.          {
  167.             removeChild(blocks[_loc1_]);
  168.             _loc1_++;
  169.          }
  170.          _loc1_ = 0;
  171.          while(_loc1_ < pickups.length)
  172.          {
  173.             removeChild(pickups[_loc1_]);
  174.             _loc1_++;
  175.          }
  176.          removeChild(player);
  177.          removeChildAt(0);
  178.          zombies = new Array();
  179.          blocks = new Array();
  180.          pickups = new Array();
  181.          keys = new Array();
  182.          time = 0;
  183.          frames = 0;
  184.          deadZombies = 0;
  185.          out.text = "Game Over \n Press H for help, C for credits, or any other key to play again.";
  186.          gameOver = true;
  187.          zombieTimer.stop();
  188.          timer.stop();
  189.       }
  190.       
  191.       internal function muteUnmute(param1:*) : void
  192.       {
  193.          var _loc2_:int = 0;
  194.          _loc2_ = channel.position;
  195.          if(mute.out.text == "Play")
  196.          {
  197.             channel = sound.play(_loc2_);
  198.             mute.out.text = "Pause";
  199.          }
  200.          else
  201.          {
  202.             channel.stop();
  203.             mute.out.text = "Play";
  204.          }
  205.       }
  206.       
  207.       internal function keyPressed(param1:KeyboardEvent) : *
  208.       {
  209.          if(currentFrame != 3)
  210.          {
  211.             gotoAndStop(3);
  212.             out.text = "Game Over \n Press H for help, C for credits, or any other key to play again.";
  213.          }
  214.          else if(gameOver && currentFrame == 3 && param1.keyCode == 72)
  215.          {
  216.             gotoAndStop(2);
  217.          }
  218.          else if(gameOver && currentFrame == 3 && param1.keyCode == 67)
  219.          {
  220.             gotoAndStop(1);
  221.          }
  222.          else if(gameOver)
  223.          {
  224.             init();
  225.             out.text = "";
  226.          }
  227.          keys[param1.keyCode] = true;
  228.       }
  229.       
  230.       internal function update(param1:Event) : *
  231.       {
  232.          var _loc2_:int = 0;
  233.          var _loc3_:int = 0;
  234.          var _loc4_:int = 0;
  235.          ++frames;
  236.          if(gameOver)
  237.          {
  238.             out.text = "Game Over \n Press H for help, C for credits, or any other key to play again.";
  239.          }
  240.          if(!buttonDone)
  241.          {
  242.             mute.addEventListener(MouseEvent.MOUSE_DOWN,muteUnmute);
  243.             buttonDone = true;
  244.          }
  245.          ammoOut.text = player.gun.ammo + "";
  246.          healthOut.text = player.health + "";
  247.          zombieOut.text = deadZombies + "";
  248.          player.update(param1);
  249.          _loc2_ = 0;
  250.          while(_loc2_ < zombies.length)
  251.          {
  252.             zombies[_loc2_].update(param1);
  253.             if(zombies[_loc2_].hitTestObject(player))
  254.             {
  255.                zombies[_loc2_].collision(player);
  256.                if(player.health == 0)
  257.                {
  258.                   player.die();
  259.                }
  260.             }
  261.             _loc2_++;
  262.          }
  263.          _loc2_ = 0;
  264.          while(_loc2_ < pickups.length)
  265.          {
  266.             if(player.hitTestObject(pickups[_loc2_]))
  267.             {
  268.                pickups[_loc2_].collision(player);
  269.             }
  270.             _loc2_++;
  271.          }
  272.          _loc2_ = 0;
  273.          while(_loc2_ < player.gun.bullets.length)
  274.          {
  275.             _loc3_ = 0;
  276.             while(_loc3_ < zombies.length)
  277.             {
  278.                if(zombies[_loc3_].hitTestObject(player.gun.bullets[_loc2_]))
  279.                {
  280.                   zombies[_loc3_].die();
  281.                   ++deadZombies;
  282.                   player.gun.bullets[_loc2_].die();
  283.                }
  284.                _loc3_++;
  285.             }
  286.             _loc2_++;
  287.          }
  288.          _loc2_ = 0;
  289.          while(_loc2_ < blocks.length)
  290.          {
  291.             if(player.hitTestObject(blocks[_loc2_]))
  292.             {
  293.                blocks[_loc2_].collision(player);
  294.             }
  295.             _loc3_ = 0;
  296.             while(_loc3_ < zombies.length)
  297.             {
  298.                if(zombies[_loc3_].hitTestObject(blocks[_loc2_]))
  299.                {
  300.                   blocks[_loc2_].collision(zombies[_loc3_]);
  301.                }
  302.                _loc3_++;
  303.             }
  304.             _loc4_ = 0;
  305.             while(_loc4_ < player.gun.bullets.length)
  306.             {
  307.                if(blocks[_loc2_].hitTestPoint(player.gun.bullets[_loc4_].x,player.gun.bullets[_loc4_].y))
  308.                {
  309.                   player.gun.bullets[_loc4_].die();
  310.                }
  311.                _loc4_++;
  312.             }
  313.             _loc3_ = 0;
  314.             while(_loc3_ < pickups.length)
  315.             {
  316.                if(blocks[_loc2_].hitTestObject(pickups[_loc3_]))
  317.                {
  318.                   pickups[_loc3_].die();
  319.                }
  320.                _loc3_++;
  321.             }
  322.             _loc2_++;
  323.          }
  324.          player.controls(keys);
  325.       }
  326.       
  327.       internal function keyReleased(param1:KeyboardEvent) : *
  328.       {
  329.          keys[param1.keyCode] = false;
  330.       }
  331.       
  332.       internal function fps(param1:TimerEvent) : *
  333.       {
  334.          ++time;
  335.          timeOut.text = Math.round(time / 60) + ":" + time % 60;
  336.          frames = 0;
  337.       }
  338.    }
  339. }
  340.