home *** CD-ROM | disk | FTP | other *** search
- package groups
- {
- import flash.utils.clearTimeout;
- import flash.utils.setTimeout;
- import game.BroadCaster;
- import game.Model;
- import game.SoundManager;
-
- public class ManGroup extends Group
- {
-
-
- public var status:String;
-
- private var climbTimber:int;
-
- public var dir:String = "right";
-
- private var standTimer:Number = 0;
-
- private var init:Boolean = false;
-
- private var up:Boolean = false;
-
- private var sdManager:SoundManager;
-
- private var xClimb:Number;
-
- private var yClimb:Number;
-
- public var xSpeed:Object;
-
- public var ySpeed:Object;
-
- private var drop:Boolean = false;
-
- private var thinkTimer:Number = 0;
-
- private var pDir:String = "";
-
- public function ManGroup(param1:String, param2:Boolean)
- {
- drop = false;
- up = false;
- thinkTimer = 0;
- standTimer = 0;
- dir = "right";
- pDir = "";
- init = false;
- super(param1,param2);
- sdManager = SoundManager.getInstance();
- }
-
- override public function set rotation(param1:Number) : void
- {
- this.items[0].rotation = param1;
- this.items[1].rotation = param1;
- }
-
- public function setSize0() : void
- {
- items[0].setSize0();
- items[1].setSize0();
- }
-
- override public function resetASpeed(param1:Number) : void
- {
- super.resetASpeed(param1);
- init = true;
- }
-
- public function resetPosition(param1:Number, param2:Number) : void
- {
- this.items[0].resetPosition(param1,param2);
- this.items[1].resetPosition(param1,param2);
- }
-
- public function doAction(param1:String) : void
- {
- var sign:String = null;
- var _man:* = undefined;
- var _sign:String = param1;
- if(status == _sign && pDir == dir || status == "die")
- {
- return;
- }
- sign = _sign;
- if((status == "land" || status == "climb" || status == "standUp") && _sign != "break" && _sign != "die" && _sign != "climbDone")
- {
- return;
- }
- if(status == "think" && _sign == "stand" && _sign != "die")
- {
- return;
- }
- if(status == "think" && _sign != "down" && _sign != "die")
- {
- sign = "standUp";
- }
- if(_sign == "break")
- {
- sign = "stand";
- }
- if(_sign == "climbDone")
- {
- sign = "stand";
- Model.disableKeyBoard = false;
- placePlayer();
- }
- if(status == "die" && _sign != "die")
- {
- return;
- }
- _man = this.items[0]._man;
- if(status == "stand")
- {
- try
- {
- clearTimeout(thinkTimer);
- }
- catch(e:Error)
- {
- }
- }
- sdManager.stopManSound();
- status = sign;
- pDir = dir;
- switch(sign)
- {
- case "run":
- _man.gotoAndPlay(dir + "Run");
- sdManager.playSound("manRun",SoundManager.TYPE_MAN,true);
- break;
- case "stand":
- _man.gotoAndPlay(dir + "Stand");
- thinkTimer = setTimeout(doAction,5000,"think");
- break;
- case "standUp":
- _man.gotoAndPlay(dir + "StandUp");
- setTimeout(doAction,500,"break");
- break;
- case "think":
- _man.gotoAndPlay(dir + "Think");
- break;
- case "up":
- sdManager.playSound("manJump",SoundManager.TYPE_MAN);
- _man.gotoAndPlay(dir + "Up");
- break;
- case "down":
- _man.gotoAndPlay(dir + "Down");
- break;
- case "land":
- sdManager.playSound("manFall",SoundManager.TYPE_MAN);
- _man.gotoAndPlay(dir + "Land");
- setTimeout(doAction,400,"break");
- break;
- case "climb":
- Model.disableKeyBoard = true;
- sdManager.playSound("manClimb",SoundManager.TYPE_MAN);
- if(counter % 2 == 0)
- {
- if(xSpeed.t * xClimb > 0)
- {
- dir = "right";
- }
- else
- {
- dir = "left";
- }
- }
- else if(xSpeed.t * yClimb > 0)
- {
- dir = "right";
- }
- else
- {
- dir = "left";
- }
- _man.gotoAndPlay(dir + "Climb");
- climbTimber = setTimeout(doAction,1200,"climbDone");
- break;
- case "die":
- _man.gotoAndPlay(dir + "Die");
- sdManager.playSound("manDie",SoundManager.TYPE_MAN);
- setTimeout(showGameOver,2000);
- try
- {
- clearTimeout(climbTimber);
- }
- catch(e:Error)
- {
- }
- }
- }
-
- private function showGameOver() : void
- {
- BroadCaster.getInstance().run("onGameOver","");
- }
-
- public function onPlayerDied() : void
- {
- doAction("die");
- }
-
- private function placePlayer() : void
- {
- items[0].move(xClimb,yClimb);
- items[1].move(xClimb,yClimb);
- }
-
- public function InitPlayer(param1:String) : void
- {
- dir = param1;
- doAction("run");
- }
-
- override public function addItem(param1:*) : void
- {
- param1.group = this;
- items.unshift(param1);
- }
-
- override public function updateSpeed() : void
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- var _loc3_:Number = NaN;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- xSpeed = counter % 2 == 0 ? xspeedArr[counter] : yspeedArr[counter];
- ySpeed = counter % 2 == 0 ? yspeedArr[counter] : xspeedArr[counter];
- if(xSpeed.s * xSpeed.t > 0)
- {
- dir = "right";
- }
- else if(xSpeed.s * xSpeed.t < 0)
- {
- dir = "left";
- }
- if(ySpeed.s == 0 && ySpeed.ps * ySpeed.t > 0)
- {
- if(yHitObj == items[1])
- {
- _loc1_ = items[0];
- _loc2_ = items[1];
- if(counter % 2 == 0)
- {
- _loc5_ = (yHit.tx - _loc1_.tx) / Math.abs(yHit.tx - _loc1_.tx);
- _loc4_ = (_loc2_.ty - _loc1_.ty) / Math.abs(_loc2_.ty - _loc1_.ty) * 20;
- _loc3_ = _loc5_ * 7;
- if(_loc3_ * xSpeed.t > 0 && Model.KEY_RIGHT)
- {
- xClimb = _loc3_;
- yClimb = _loc4_;
- doAction("climb");
- }
- else if(Model.KEY_LEFT)
- {
- xClimb = _loc3_;
- yClimb = _loc4_;
- doAction("climb");
- }
- else
- {
- _loc1_.move(-_loc5_,0);
- _loc2_.move(-_loc5_,0);
- }
- }
- else
- {
- _loc4_ = (_loc5_ = (yHit.ty - _loc1_.ty) / Math.abs(yHit.ty - _loc1_.ty)) * 7;
- _loc3_ = (_loc2_.tx - _loc1_.tx) / Math.abs(_loc2_.tx - _loc1_.tx) * 20;
- if(_loc4_ * xSpeed.t > 0 && Model.KEY_RIGHT)
- {
- xClimb = _loc3_;
- yClimb = _loc4_;
- doAction("climb");
- }
- else if(Model.KEY_LEFT)
- {
- xClimb = _loc3_;
- yClimb = _loc4_;
- doAction("climb");
- }
- else
- {
- _loc1_.move(0,-_loc5_);
- _loc2_.move(0,-_loc5_);
- }
- }
- }
- else
- {
- xSpeed.a = 0;
- xSpeed.s = 0;
- if(Math.abs(ySpeed.ps) >= 1)
- {
- doAction("land");
- }
- }
- }
- else if(ySpeed.s == 0 && ySpeed.ps == 0 && !init)
- {
- Model.ran += Math.abs(xSpeed.s);
- if(xSpeed.s == 0 && xSpeed.ps == 0 && !Model.KEY_LEFT && !Model.KEY_RIGHT)
- {
- doAction("stand");
- }
- if(Model.KEY_RIGHT && Model.KEY_LEFT)
- {
- xSpeed.a = 0;
- }
- else if(Model.KEY_LEFT)
- {
- doAction("run");
- if(status != "standUp" && status != "think" && status != "land" && status != "climb")
- {
- xSpeed.a = -xSpeed.t * 0.5;
- }
- }
- else if(Model.KEY_RIGHT)
- {
- doAction("run");
- if(status != "standUp" && status != "think" && status != "land" && status != "climb")
- {
- xSpeed.a = xSpeed.t * 0.5;
- }
- }
- else if(xSpeed.s != 0)
- {
- xSpeed.a = -xSpeed.s / Math.abs(xSpeed.s) * 0.5;
- if(Math.abs(Math.round(xSpeed.s * 2) / 2) <= 0.5)
- {
- xSpeed.a = 0;
- xSpeed.s = 0;
- }
- }
- if(Model.KEY_UP)
- {
- doAction("up");
- if(status != "standUp" && status != "think" && status != "land" && status != "climb")
- {
- ySpeed.s = -ySpeed.t * 6;
- ++Model.jumped;
- }
- }
- if(Model.KEY_DOWN)
- {
- }
- }
- else
- {
- if(Model.KEY_RIGHT && Model.KEY_LEFT)
- {
- xSpeed.a = 0;
- }
- else if(Model.KEY_LEFT)
- {
- xSpeed.a = -xSpeed.t * 0.5 * 0.8;
- }
- else if(Model.KEY_RIGHT)
- {
- xSpeed.a = xSpeed.t * 0.5 * 0.8;
- }
- else
- {
- xSpeed.a = 0;
- }
- if(ySpeed.s * ySpeed.a < 0 && !up)
- {
- doAction("up");
- }
- else if(ySpeed.s * ySpeed.a > 0 && !drop && Math.abs(ySpeed.s) > 0.5)
- {
- doAction("down");
- }
- }
- init = false;
- super.updateSpeed();
- }
- }
- }
-