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]; } }
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; } } }