public override void Update(GameTime gameTime, Rectangle clientBound) { Vector2 direction = Vector2.Zero; if (CurrentState != State.Jumping) { spriteEffect = SpriteEffects.None; currentAnimation = originalAnimation; CurrentState = State.Standing; KeyboardService keyboardService = ServicesHelper.GetService <KeyboardService>(); if (keyboardService.IsKeyDown(Keys.Left)) { direction.X -= 1; CurrentState = State.WalkingLeft; currentAnimation = walkingAnimation; spriteEffect = SpriteEffects.None; } if (keyboardService.IsKeyDown(Keys.Right)) { direction.X += 1; CurrentState = State.WalkingRight; currentAnimation = walkingAnimation; spriteEffect = SpriteEffects.FlipHorizontally; } _speed = _initialSpeed * direction; if (keyboardService.IsKeyDown(Keys.Space)) { CurrentState = State.Jumping; currentAnimation = jumpingAnimation; _speed.Y = -3f; _initialSpeed.Y = _speed.Y; direction.Y = 1; } } else { _speed.Y = _speed.Y + _acceleration; if (_speed.Y > _initialSpeed.Y * -1) { CurrentState = State.Standing; _position.Y = _initialPosition.Y; jumpingAnimation.End(); } } _position += _speed; currentAnimation.Update(gameTime); if (_position.X < 0) { _position.X = 0; } if (_position.X + currentAnimation.GetNextFrame().SourceRectangle.Width > clientBound.Width) { _position.X = clientBound.Width - currentAnimation.GetNextFrame().SourceRectangle.Width; } }
public override void Update(GameTime gameTime, Rectangle clientBound) { Vector2 direction = Vector2.Zero; KeyboardService keyboardService = ServicesHelper.GetService <KeyboardService>(); if (keyboardService.IsKeyDown(Keys.Left)) { direction.X -= 1; } if (keyboardService.IsKeyDown(Keys.Right)) { direction.X += 1; } if (keyboardService.IsKeyDown(Keys.Up)) { direction.Y -= 1; } if (keyboardService.IsKeyDown(Keys.Down)) { direction.Y += 1; } _speed = _initialSpeed * direction; base.Update(gameTime, clientBound); }
public override void HandleInput() { if (KeyboardService.IsKeyDown(Keys.Space) && IsFocused) { ScreenManager.AddScreen <GameScreen>(); Unload(); } }