Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Hero extends Entity
- {
- private var input : InputComponent;
- private var _view : HeroViewComponent;
- private var _physicsComponent : HeroPhysicsComponent;
- private var _movementComponent: HeroMovementComponent;
- public function Hero(name:String, params:Object = null) {
- super(name, params);
- // creation of components
- _physicsComponent = new HeroPhysicsComponent("physics", {x:200, y:270, width:40, height:60, entity:this});
- input = new InputComponent("input", {entity:heroEntity});
- var collision:HeroCollisionComponent = new HeroCollisionComponent("collision", {entity:this});
- _movementComponent = new HeroMovementComponent("move", {entity:this});
- _view = new HeroViewComponent("view", {view:"Patch.swf", entity:this});
- heroEntity.add(_physicsComponent).add(input).add(collision).add(_movementComponent).add(_view);
- // ...
- }
- override public function initialize():void {
- super.initialize();
- // wire up interaction between components with signals & callbacks
- _view.onUpdate.add(_onViewUpdate);
- // ...
- }
- override public function destroy():void {
- // clean up
- _view.onUpdate.remove(_onViewUpdate);
- // ...
- super.destroy();
- }
- private function _onViewUpdate() {
- var prevAnimation:String = _view.getCurrentAnimation();
- if (_physicsComponent && _movementComponent) {
- if (_movementComponent.isHurt)
- _view.setAnimation("hurt");
- else if (!_movementComponent.onGround)
- _view.setAnimation("jump");
- else if (_movementComponent.ducking)
- _view.setAnimation("duck");
- else {
- var walkingSpeed:Number = _movementComponent.getWalkingSpeed();
- if (walkingSpeed < -_movementComponent.acceleration) {
- _inverted = true;
- _view.setAnimation("walk");
- } else if (walkingSpeed > _movementComponent.acceleration) {
- _inverted = false;
- _view.setAnimation("walk");
- } else {
- _view.setAnimation("idle");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement