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);
        }
Пример #3
0
        public override void Update(GameTime gameTime, Rectangle clientBound)
        {
            MouseService mouseService = ServicesHelper.GetService <MouseService>();

            _position = mouseService.CurrentPosition;

            base.Update(gameTime, clientBound);
        }
Пример #4
0
 public DebugScreen(Game game)
     : base(game)
 {
     Name            = "Debug";
     HasGrabFocus    = false;
     State           = ScreenState.Hidden;
     keyboardService = ServicesHelper.GetService <KeyboardService>();
 }