예제 #1
0
        public void Update(GameTime gameTime)
        {
            var keystate = Keyboard.GetState();

            if (keystate.IsKeyDown(Keys.W) || keystate.IsKeyDown(Keys.Up))
            {
                _movement += _moveUp * (float)gameTime.ElapsedGameTime.TotalSeconds * _speed;
            }
            if (keystate.IsKeyDown(Keys.S) || keystate.IsKeyDown(Keys.Down))
            {
                _movement += _moveDown * (float)gameTime.ElapsedGameTime.TotalSeconds * _speed;
            }
            if (keystate.IsKeyDown(Keys.A) || keystate.IsKeyDown(Keys.Left))
            {
                _movement += _moveLeft * (float)gameTime.ElapsedGameTime.TotalSeconds * _speed;
            }
            if (keystate.IsKeyDown(Keys.D) || keystate.IsKeyDown(Keys.Right))
            {
                _movement += _moveRight * (float)gameTime.ElapsedGameTime.TotalSeconds * _speed;
            }

            var tempPosition = Position + _movement;

            if (tempPosition.X >= 20.2f)
            {
                _movement.X = -_movement.X;
            }
            else if (tempPosition.Y <= -20.2f)
            {
                _movement.Y = -_movement.Y;
            }
            else if (tempPosition.X <= -20.5f)
            {
                _parentPlayState.TriggerEnd("Fell out of the arena", Color.Red);
            }
            else if (tempPosition.Y >= 20.5f)
            {
                _parentPlayState.TriggerEnd("Fell out of the arena", Color.Red);
            }

            Position += _movement;
        }