public override void Update(float deltaTime) { AutoSpriteSorter.Update(deltaTime); }
public override void Update(float deltaTime) { #region Input int inputX = 0; int inputY = 0; bool isKeyDown(Keys k) => Keyboard.GetState().IsKeyDown(k); if (isKeyDown(Input.MoveUp)) { inputY -= 1; } if (isKeyDown(Input.MoveDown)) { inputY += 1; } if (isKeyDown(Input.MoveLeft)) { inputX -= 1; } if (isKeyDown(Input.MoveRight)) { inputX += 1; } movement.X = inputX; movement.Y = inputY; #endregion velocity = movement * (currentSpeed * Stats.SpeedModifier) * deltaTime; #region Diagonal Speed if (velocity.X != 0 && velocity.Y != 0) { currentSpeed = DIAG_SPEED; } else { currentSpeed = MOVE_SPEED; } #endregion #region State Switching if (velocity != Vector2.Zero) { isMoving = true; } else { isMoving = false; } if (!isMoving) { RequestState(new PlayerIdleState(this)); } else if (isMoving && !(stateMachine.CurrentState is PlayerRunningState)) { RequestState(new PlayerWalkState(this)); } #endregion if (movement.X > 0) { FlipHorizontal = false; } else if (movement.X < 0) { FlipHorizontal = true; } Position += velocity; #region Misc stateMachine.Update(deltaTime); AnimationManager.Update(deltaTime); AutoSpriteSorter.Update(deltaTime); #endregion }