home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Aventura / Never_End.swf / scripts / groups / ManGroup.as < prev    next >
Encoding:
Text File  |  2008-09-23  |  11.1 KB  |  384 lines

  1. package groups
  2. {
  3.    import flash.utils.clearTimeout;
  4.    import flash.utils.setTimeout;
  5.    import game.BroadCaster;
  6.    import game.Model;
  7.    import game.SoundManager;
  8.    
  9.    public class ManGroup extends Group
  10.    {
  11.        
  12.       
  13.       public var status:String;
  14.       
  15.       private var climbTimber:int;
  16.       
  17.       public var dir:String = "right";
  18.       
  19.       private var standTimer:Number = 0;
  20.       
  21.       private var init:Boolean = false;
  22.       
  23.       private var up:Boolean = false;
  24.       
  25.       private var sdManager:SoundManager;
  26.       
  27.       private var xClimb:Number;
  28.       
  29.       private var yClimb:Number;
  30.       
  31.       public var xSpeed:Object;
  32.       
  33.       public var ySpeed:Object;
  34.       
  35.       private var drop:Boolean = false;
  36.       
  37.       private var thinkTimer:Number = 0;
  38.       
  39.       private var pDir:String = "";
  40.       
  41.       public function ManGroup(param1:String, param2:Boolean)
  42.       {
  43.          drop = false;
  44.          up = false;
  45.          thinkTimer = 0;
  46.          standTimer = 0;
  47.          dir = "right";
  48.          pDir = "";
  49.          init = false;
  50.          super(param1,param2);
  51.          sdManager = SoundManager.getInstance();
  52.       }
  53.       
  54.       override public function set rotation(param1:Number) : void
  55.       {
  56.          this.items[0].rotation = param1;
  57.          this.items[1].rotation = param1;
  58.       }
  59.       
  60.       public function setSize0() : void
  61.       {
  62.          items[0].setSize0();
  63.          items[1].setSize0();
  64.       }
  65.       
  66.       override public function resetASpeed(param1:Number) : void
  67.       {
  68.          super.resetASpeed(param1);
  69.          init = true;
  70.       }
  71.       
  72.       public function resetPosition(param1:Number, param2:Number) : void
  73.       {
  74.          this.items[0].resetPosition(param1,param2);
  75.          this.items[1].resetPosition(param1,param2);
  76.       }
  77.       
  78.       public function doAction(param1:String) : void
  79.       {
  80.          var sign:String = null;
  81.          var _man:* = undefined;
  82.          var _sign:String = param1;
  83.          if(status == _sign && pDir == dir || status == "die")
  84.          {
  85.             return;
  86.          }
  87.          sign = _sign;
  88.          if((status == "land" || status == "climb" || status == "standUp") && _sign != "break" && _sign != "die" && _sign != "climbDone")
  89.          {
  90.             return;
  91.          }
  92.          if(status == "think" && _sign == "stand" && _sign != "die")
  93.          {
  94.             return;
  95.          }
  96.          if(status == "think" && _sign != "down" && _sign != "die")
  97.          {
  98.             sign = "standUp";
  99.          }
  100.          if(_sign == "break")
  101.          {
  102.             sign = "stand";
  103.          }
  104.          if(_sign == "climbDone")
  105.          {
  106.             sign = "stand";
  107.             Model.disableKeyBoard = false;
  108.             placePlayer();
  109.          }
  110.          if(status == "die" && _sign != "die")
  111.          {
  112.             return;
  113.          }
  114.          _man = this.items[0]._man;
  115.          if(status == "stand")
  116.          {
  117.             try
  118.             {
  119.                clearTimeout(thinkTimer);
  120.             }
  121.             catch(e:Error)
  122.             {
  123.             }
  124.          }
  125.          sdManager.stopManSound();
  126.          status = sign;
  127.          pDir = dir;
  128.          switch(sign)
  129.          {
  130.             case "run":
  131.                _man.gotoAndPlay(dir + "Run");
  132.                sdManager.playSound("manRun",SoundManager.TYPE_MAN,true);
  133.                break;
  134.             case "stand":
  135.                _man.gotoAndPlay(dir + "Stand");
  136.                thinkTimer = setTimeout(doAction,5000,"think");
  137.                break;
  138.             case "standUp":
  139.                _man.gotoAndPlay(dir + "StandUp");
  140.                setTimeout(doAction,500,"break");
  141.                break;
  142.             case "think":
  143.                _man.gotoAndPlay(dir + "Think");
  144.                break;
  145.             case "up":
  146.                sdManager.playSound("manJump",SoundManager.TYPE_MAN);
  147.                _man.gotoAndPlay(dir + "Up");
  148.                break;
  149.             case "down":
  150.                _man.gotoAndPlay(dir + "Down");
  151.                break;
  152.             case "land":
  153.                sdManager.playSound("manFall",SoundManager.TYPE_MAN);
  154.                _man.gotoAndPlay(dir + "Land");
  155.                setTimeout(doAction,400,"break");
  156.                break;
  157.             case "climb":
  158.                Model.disableKeyBoard = true;
  159.                sdManager.playSound("manClimb",SoundManager.TYPE_MAN);
  160.                if(counter % 2 == 0)
  161.                {
  162.                   if(xSpeed.t * xClimb > 0)
  163.                   {
  164.                      dir = "right";
  165.                   }
  166.                   else
  167.                   {
  168.                      dir = "left";
  169.                   }
  170.                }
  171.                else if(xSpeed.t * yClimb > 0)
  172.                {
  173.                   dir = "right";
  174.                }
  175.                else
  176.                {
  177.                   dir = "left";
  178.                }
  179.                _man.gotoAndPlay(dir + "Climb");
  180.                climbTimber = setTimeout(doAction,1200,"climbDone");
  181.                break;
  182.             case "die":
  183.                _man.gotoAndPlay(dir + "Die");
  184.                sdManager.playSound("manDie",SoundManager.TYPE_MAN);
  185.                setTimeout(showGameOver,2000);
  186.                try
  187.                {
  188.                   clearTimeout(climbTimber);
  189.                }
  190.                catch(e:Error)
  191.                {
  192.                }
  193.          }
  194.       }
  195.       
  196.       private function showGameOver() : void
  197.       {
  198.          BroadCaster.getInstance().run("onGameOver","");
  199.       }
  200.       
  201.       public function onPlayerDied() : void
  202.       {
  203.          doAction("die");
  204.       }
  205.       
  206.       private function placePlayer() : void
  207.       {
  208.          items[0].move(xClimb,yClimb);
  209.          items[1].move(xClimb,yClimb);
  210.       }
  211.       
  212.       public function InitPlayer(param1:String) : void
  213.       {
  214.          dir = param1;
  215.          doAction("run");
  216.       }
  217.       
  218.       override public function addItem(param1:*) : void
  219.       {
  220.          param1.group = this;
  221.          items.unshift(param1);
  222.       }
  223.       
  224.       override public function updateSpeed() : void
  225.       {
  226.          var _loc1_:* = undefined;
  227.          var _loc2_:* = undefined;
  228.          var _loc3_:Number = NaN;
  229.          var _loc4_:Number = NaN;
  230.          var _loc5_:Number = NaN;
  231.          xSpeed = counter % 2 == 0 ? xspeedArr[counter] : yspeedArr[counter];
  232.          ySpeed = counter % 2 == 0 ? yspeedArr[counter] : xspeedArr[counter];
  233.          if(xSpeed.s * xSpeed.t > 0)
  234.          {
  235.             dir = "right";
  236.          }
  237.          else if(xSpeed.s * xSpeed.t < 0)
  238.          {
  239.             dir = "left";
  240.          }
  241.          if(ySpeed.s == 0 && ySpeed.ps * ySpeed.t > 0)
  242.          {
  243.             if(yHitObj == items[1])
  244.             {
  245.                _loc1_ = items[0];
  246.                _loc2_ = items[1];
  247.                if(counter % 2 == 0)
  248.                {
  249.                   _loc5_ = (yHit.tx - _loc1_.tx) / Math.abs(yHit.tx - _loc1_.tx);
  250.                   _loc4_ = (_loc2_.ty - _loc1_.ty) / Math.abs(_loc2_.ty - _loc1_.ty) * 20;
  251.                   _loc3_ = _loc5_ * 7;
  252.                   if(_loc3_ * xSpeed.t > 0 && Model.KEY_RIGHT)
  253.                   {
  254.                      xClimb = _loc3_;
  255.                      yClimb = _loc4_;
  256.                      doAction("climb");
  257.                   }
  258.                   else if(Model.KEY_LEFT)
  259.                   {
  260.                      xClimb = _loc3_;
  261.                      yClimb = _loc4_;
  262.                      doAction("climb");
  263.                   }
  264.                   else
  265.                   {
  266.                      _loc1_.move(-_loc5_,0);
  267.                      _loc2_.move(-_loc5_,0);
  268.                   }
  269.                }
  270.                else
  271.                {
  272.                   _loc4_ = (_loc5_ = (yHit.ty - _loc1_.ty) / Math.abs(yHit.ty - _loc1_.ty)) * 7;
  273.                   _loc3_ = (_loc2_.tx - _loc1_.tx) / Math.abs(_loc2_.tx - _loc1_.tx) * 20;
  274.                   if(_loc4_ * xSpeed.t > 0 && Model.KEY_RIGHT)
  275.                   {
  276.                      xClimb = _loc3_;
  277.                      yClimb = _loc4_;
  278.                      doAction("climb");
  279.                   }
  280.                   else if(Model.KEY_LEFT)
  281.                   {
  282.                      xClimb = _loc3_;
  283.                      yClimb = _loc4_;
  284.                      doAction("climb");
  285.                   }
  286.                   else
  287.                   {
  288.                      _loc1_.move(0,-_loc5_);
  289.                      _loc2_.move(0,-_loc5_);
  290.                   }
  291.                }
  292.             }
  293.             else
  294.             {
  295.                xSpeed.a = 0;
  296.                xSpeed.s = 0;
  297.                if(Math.abs(ySpeed.ps) >= 1)
  298.                {
  299.                   doAction("land");
  300.                }
  301.             }
  302.          }
  303.          else if(ySpeed.s == 0 && ySpeed.ps == 0 && !init)
  304.          {
  305.             Model.ran += Math.abs(xSpeed.s);
  306.             if(xSpeed.s == 0 && xSpeed.ps == 0 && !Model.KEY_LEFT && !Model.KEY_RIGHT)
  307.             {
  308.                doAction("stand");
  309.             }
  310.             if(Model.KEY_RIGHT && Model.KEY_LEFT)
  311.             {
  312.                xSpeed.a = 0;
  313.             }
  314.             else if(Model.KEY_LEFT)
  315.             {
  316.                doAction("run");
  317.                if(status != "standUp" && status != "think" && status != "land" && status != "climb")
  318.                {
  319.                   xSpeed.a = -xSpeed.t * 0.5;
  320.                }
  321.             }
  322.             else if(Model.KEY_RIGHT)
  323.             {
  324.                doAction("run");
  325.                if(status != "standUp" && status != "think" && status != "land" && status != "climb")
  326.                {
  327.                   xSpeed.a = xSpeed.t * 0.5;
  328.                }
  329.             }
  330.             else if(xSpeed.s != 0)
  331.             {
  332.                xSpeed.a = -xSpeed.s / Math.abs(xSpeed.s) * 0.5;
  333.                if(Math.abs(Math.round(xSpeed.s * 2) / 2) <= 0.5)
  334.                {
  335.                   xSpeed.a = 0;
  336.                   xSpeed.s = 0;
  337.                }
  338.             }
  339.             if(Model.KEY_UP)
  340.             {
  341.                doAction("up");
  342.                if(status != "standUp" && status != "think" && status != "land" && status != "climb")
  343.                {
  344.                   ySpeed.s = -ySpeed.t * 6;
  345.                   ++Model.jumped;
  346.                }
  347.             }
  348.             if(Model.KEY_DOWN)
  349.             {
  350.             }
  351.          }
  352.          else
  353.          {
  354.             if(Model.KEY_RIGHT && Model.KEY_LEFT)
  355.             {
  356.                xSpeed.a = 0;
  357.             }
  358.             else if(Model.KEY_LEFT)
  359.             {
  360.                xSpeed.a = -xSpeed.t * 0.5 * 0.8;
  361.             }
  362.             else if(Model.KEY_RIGHT)
  363.             {
  364.                xSpeed.a = xSpeed.t * 0.5 * 0.8;
  365.             }
  366.             else
  367.             {
  368.                xSpeed.a = 0;
  369.             }
  370.             if(ySpeed.s * ySpeed.a < 0 && !up)
  371.             {
  372.                doAction("up");
  373.             }
  374.             else if(ySpeed.s * ySpeed.a > 0 && !drop && Math.abs(ySpeed.s) > 0.5)
  375.             {
  376.                doAction("down");
  377.             }
  378.          }
  379.          init = false;
  380.          super.updateSpeed();
  381.       }
  382.    }
  383. }
  384.