public void Face(Facing dir) { if (!Locked) { Initialize(); if (this.Facing != dir) { FacingChanged.SafeInvoke(this, new FacingChangedArgs(this.Facing, dir)); } this.Facing = dir; switch (this.Facing) { case Facing.Up: this.Animator.Play("face-up"); break; case Facing.Down: this.Animator.Play("face-down"); break; case Facing.Left: this.Animator.Play("face-left"); break; case Facing.Right: this.Animator.Play("face-right"); break; } } }
public void TurnAround(Facing facing, bool templock) { Action callback = null; this.Turning = true; if (this.Facing != facing) { FacingChanged.SafeInvoke(this, new FacingChangedArgs(this.Facing, facing)); } this.Facing = facing; if (templock) { Lock(); callback = new Action(delegate() { this.Release(false); this.Turning = false; }); } switch (facing) { case Facing.Up: this.Animator.Play("facechange-up", true, callback); break; case Facing.Down: this.Animator.Play("facechange-down", true, callback); break; case Facing.Left: this.Animator.Play("facechange-left", true, callback); break; case Facing.Right: this.Animator.Play("facechange-right", true, callback); break; } }
public virtual void ForceMove(Facing dir, MovementSpeed speed) { if (MovementState == MovementState.None) { this.Initialize(); BeginMoving.SafeInvoke(this, EventArgs.Empty); if (this.Facing != dir) { FacingChanged.SafeInvoke(this, new FacingChangedArgs(this.Facing, dir)); } this.Facing = dir; switch (dir) { case Facing.Up: if (speed == MovementSpeed.Walking) { Animator.Play("walking-up"); } else if (speed == MovementSpeed.Running) { Animator.Play("running-up"); } break; case Facing.Down: if (speed == MovementSpeed.Walking) { Animator.Play("walking-down"); } else if (speed == MovementSpeed.Running) { Animator.Play("running-down"); } break; case Facing.Left: if (speed == MovementSpeed.Walking) { Animator.Play("walking-left"); } else if (speed == MovementSpeed.Running) { Animator.Play("running-left"); } break; case Facing.Right: if (speed == MovementSpeed.Walking) { Animator.Play("walking-right"); } else if (speed == MovementSpeed.Running) { Animator.Play("running-right"); } break; } this.movement = -(dir.ToVector2() * new Vector2(16, 16)); this.MovementSpeed = speed; this.MovementState = MovementState.Walking; this.Position -= this.movement; } }