Exemple #1
0
 public Player(string skinAsset, string weaponSkinAsset, int rows, int columns, Vector2 startPoint, int screenWidth, PlayerData playerData)
     : base(skinAsset, rows, columns)
 {
     Data = playerData;
       _screenWidth = screenWidth;
       CurrentMovement = new Movement { Direction = MoveDirection.Stop, Type = MovementType.Walking };
       _lastDirection = CurrentMovement.Direction;
       Position = startPoint;
       _projectileAssetName = weaponSkinAsset;
 }
        private void UpdateLootMovement(Movement movement)
        {
            var direction = MoveDirection.Stop;

              if (movement.Direction == MoveDirection.Left) direction = MoveDirection.Right;
              if (movement.Direction == MoveDirection.Right) direction = MoveDirection.Left;

              mSpeed = Vector2.Zero;
              mDirection = Vector2.Zero;
              mSpeed.X = 120;
              mDirection.X = Constants.DirectionOffsets[direction];
        }
        public override void Update(GameTime gameTime, Movement movement)
        {
            if (_lastGameTime == null) _lastGameTime = gameTime.TotalGameTime;

              if (((gameTime.TotalGameTime - _lastGameTime.Value).Milliseconds >= 200))
              {
            _lastGameTime = gameTime.TotalGameTime;
            _currentFrameIndex++;
            if (_currentFrameIndex == _totalFrameCount)
              _currentFrameIndex = 0;
              }

              UpdateLootMovement(movement);
              base.Update(gameTime, mSpeed, mDirection);
        }
        public void Update(GameTime gameTime, ScreenPosition playerScreenPosition, MoveDirection playerMoveDirection)
        {
            if (mCurrentState == CharacterState.Walking)
              {
            var movement = new Movement { Direction = _currentDirection, Type = MovementType.Walking };
            if (_currentDirection == MoveDirection.Left)
            {
              if (Position.X - _minX <= 20)
              {
            _currentFrameIndex = 0;
            _currentDirection = MoveDirection.Right;
              }
            }
            else if (_currentDirection == MoveDirection.Right)
            {

              if (_maxX - Position.X <= 20)
              {
            _currentFrameIndex = 1;
            _currentDirection = MoveDirection.Left;
              }
            }
            UpdateMovement(movement, playerScreenPosition, playerMoveDirection);
            _hpBar.UpdateFrameIndex(Position, Data.MaxHp, Data.CurrentHp);
            _hpBar.Update(gameTime, mSpeed, mDirection);
            base.Update(gameTime, mSpeed, mDirection);
              }
              if (IsDead)
              {
            if (_deadTime.HasValue)
            {
              if ((gameTime.TotalGameTime - _deadTime.Value).Milliseconds > 250)
              {
            DoRemove = true;
              }
            }
            else
            {
              _deadTime = gameTime.TotalGameTime;
            }
              }
        }
        private void UpdateMovement(Movement movement, ScreenPosition playerScreenPosition, MoveDirection playerMoveDirection)
        {
            if (mCurrentState == CharacterState.Walking)
              {
            mSpeed = Vector2.Zero;
            mDirection = Vector2.Zero;
            mSpeed.X = Data.Speed;

            if (movement.Direction == MoveDirection.Left && playerScreenPosition == ScreenPosition.Right)
            {
              mSpeed.X = Data.Speed + (Data.Speed / 2);
            }

            if (movement.Direction == MoveDirection.Left && playerScreenPosition == ScreenPosition.Left)
            {
              mSpeed.X = Data.Speed / 2;
            }

            if (movement.Direction == MoveDirection.Right && playerScreenPosition == ScreenPosition.Left)
            {
              mSpeed.X = Data.Speed + (Data.Speed / 2);
            }

            if (movement.Direction == MoveDirection.Right && playerScreenPosition == ScreenPosition.Right)
            {
              if (playerMoveDirection == MoveDirection.Right) mSpeed.X = Data.Speed / 2;
            }

            if (movement.Direction == MoveDirection.Up || movement.Direction == MoveDirection.Down)
              mDirection.Y = AnimatedSprite.Constants.DirectionOffsets[movement.Direction];
            else
              mDirection.X = AnimatedSprite.Constants.DirectionOffsets[movement.Direction];
              }
        }
 public virtual void Update(GameTime theGameTime, Movement movement)
 {
     if (movement.Direction == MoveDirection.Stop)
       {
     _currentFrameIndex = 0;
       }
       else
       {
     _currentFrameIndex++;
     if (_currentFrameIndex == _totalFrameCount)
     {
       _currentFrameIndex = 0;
     }
       }
       UpdateMovement(movement);
       base.Update(theGameTime, mSpeed, mDirection);
 }
        protected virtual void UpdateMovement(Movement movement)
        {
            if (mCurrentState == CharacterState.Walking)
              {
            mSpeed = Vector2.Zero;
            mDirection = Vector2.Zero;
            mSpeed.X = Constants.MovementSpeed[movement.Type];

            if (movement.Direction == MoveDirection.Up || movement.Direction == MoveDirection.Down)
              mDirection.Y = Constants.DirectionOffsets[movement.Direction];
            else
              mDirection.X = Constants.DirectionOffsets[movement.Direction];
              }
        }
Exemple #8
0
        protected override void UpdateMovement(Movement movement)
        {
            if (mCurrentState == CharacterState.Walking)
              {
            mSpeed = Vector2.Zero;
            mDirection = Vector2.Zero;
            mSpeed.X = Constants.MovementSpeed[movement.Type];

            if (ScreenPosition == ScreenPosition.Left && movement.Direction == MoveDirection.Left)
            {
              mSpeed.X = 0;
            }

            if (ScreenPosition == ScreenPosition.Right && movement.Direction == MoveDirection.Right)
            {
              mSpeed.X = 0;
            }

            if (movement.Direction == MoveDirection.Up || movement.Direction == MoveDirection.Down)
              mDirection.Y = Constants.DirectionOffsets[movement.Direction];
            else
              mDirection.X = Constants.DirectionOffsets[movement.Direction];
              }
        }
        public override void Update(GameTime theGameTime, Movement movement)
        {
            if (Data.Effect == ProjectileEffect.Burn)
              {
            if (((theGameTime.TotalGameTime - _burnStart).TotalMilliseconds >= 500))
            {
              DoRemove = true;
            }
              }
              else
              {
            if (!DoRemove) DoRemove = (Vector2.Distance(StartPosition, Position) > _weapon.Distance);

            if (!DoRemove)
            {
              if (_direction == MoveDirection.Right)
            Position += mDirection * _weapon.Speed * (float)theGameTime.ElapsedGameTime.TotalSeconds;
              else
            Position -= mDirection * _weapon.Speed * (float)theGameTime.ElapsedGameTime.TotalSeconds;
            }
              }
        }