Guest User

Untitled

a guest
Aug 21st, 2012
106
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public class Hero extends Entity
  2. {
  3.     private var input : InputComponent;
  4.     private var _view : HeroViewComponent;
  5.     private var _physicsComponent : HeroPhysicsComponent;
  6.     private var _movementComponent: HeroMovementComponent;
  7.  
  8.     public function Hero(name:String, params:Object = null) {
  9.         super(name, params);
  10.        
  11.         // creation of components
  12.         _physicsComponent = new HeroPhysicsComponent("physics", {x:200, y:270, width:40, height:60, entity:this});
  13.         input = new InputComponent("input", {entity:heroEntity});
  14.         var collision:HeroCollisionComponent = new HeroCollisionComponent("collision", {entity:this});
  15.         _movementComponent = new HeroMovementComponent("move", {entity:this});
  16.         _view = new HeroViewComponent("view", {view:"Patch.swf", entity:this});
  17.  
  18.  
  19.         heroEntity.add(_physicsComponent).add(input).add(collision).add(_movementComponent).add(_view);
  20.         // ...
  21.     }
  22.  
  23.     override public function initialize():void {
  24.         super.initialize();
  25.  
  26.         // wire up interaction between components with signals & callbacks
  27.         _view.onUpdate.add(_onViewUpdate);
  28.         // ...
  29.     }
  30.  
  31.     override public function destroy():void {
  32.        
  33.         // clean up
  34.         _view.onUpdate.remove(_onViewUpdate);
  35.         // ...
  36.  
  37.         super.destroy();
  38.     }
  39.    
  40.     private function _onViewUpdate() {
  41.         var prevAnimation:String = _view.getCurrentAnimation();
  42.  
  43.         if (_physicsComponent && _movementComponent) {
  44.  
  45.             if (_movementComponent.isHurt)
  46.                 _view.setAnimation("hurt");
  47.             else if (!_movementComponent.onGround)
  48.                 _view.setAnimation("jump");
  49.             else if (_movementComponent.ducking)
  50.                 _view.setAnimation("duck");
  51.             else {
  52.  
  53.                 var walkingSpeed:Number = _movementComponent.getWalkingSpeed();
  54.  
  55.                 if (walkingSpeed < -_movementComponent.acceleration) {                     
  56.                     _inverted = true;                      
  57.                     _view.setAnimation("walk");                    
  58.                 } else if (walkingSpeed > _movementComponent.acceleration) {
  59.                     _inverted = false;
  60.                     _view.setAnimation("walk");
  61.                 } else {
  62.                     _view.setAnimation("idle");
  63.                 }
  64.             }              
  65.         }
  66.     }
  67. }
RAW Paste Data