WarTornLands.PlayerClasses.Player.Update C# (CSharp) Method

Update() public method

Gibt den aktuellen Blickwinkel des Spielers im Bogenmaß zurück, wobei Oben = 0.
public Update ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
return void
        public override void Update(GameTime gameTime)
        {
            _cm.StartCounter(_animCounter, false);
            InputManager input = (Game as Game1)._input;

            Vector2 oldPos = _position;
            _position = CollisionDetector.GetPosition(_position,
                                                      input.Move.Value * _speed * gameTime.ElapsedGameTime.Milliseconds,
                                                      _radius, this);

            #region Animation

            _direction =  _position - oldPos;

            if (_direction.Length() == 0)
            {
                _animationType = AnimationType.STANDING;
            }
            else
            {
                _direction.Normalize();
                _animationType = AnimationType.MOVING;

                if (Math.Abs(_direction.X) > Math.Abs(_direction.Y))
                {
                    if (_direction.X >= 0)
                        _animFacing = Facing.RIGHT;
                    else
                        _animFacing = Facing.LEFT;
                }
                else
                {
                    if (_direction.Y >= 0)
                        _animFacing = Facing.DOWN;
                    else
                        _animFacing = Facing.UP;
                }
            }
            switch (_animFacing)
            {
                case Facing.LEFT:
                    switch (_animationType)
                    {
                        case AnimationType.MOVING:
                            _animSource = new Vector2(6, 0);
                            break;
                        case AnimationType.STANDING:
                            _animSource = new Vector2(4, 0);
                            break;
                        default:
                            break;
                    }
                    break;
                case Facing.UP:
                    switch (_animationType)
                    {
                        case AnimationType.MOVING:
                            _animSource = new Vector2(6, 1);
                            break;
                        case AnimationType.STANDING:
                            _animSource = new Vector2(4, 1);
                            break;
                        default:
                            break;
                    }
                    break;
                case Facing.RIGHT:
                    switch (_animationType)
                    {
                        case AnimationType.MOVING:
                            _animSource = new Vector2(2, 1);
                            break;
                        case AnimationType.STANDING:
                            _animSource = new Vector2(0, 1);
                            break;
                        default:
                            break;
                    }
                    break;
                case Facing.DOWN:
                    switch (_animationType)
                    {
                        case AnimationType.MOVING:
                            _animSource = new Vector2(2, 0);
                            break;
                        case AnimationType.STANDING:
                            _animSource = new Vector2(0, 0);
                            break;
                        default:
                            break;
                    }
                    break;
                default:
                    break;
            }

            #endregion

            // Attack! Attack!
            if (input.Hit.Value)
            {
                _cm.StartCounter(_hitCounter, false);
            }

            _cm.Update(gameTime);
            base.Update(gameTime);
        }