Exemplo n.º 1
0
        private void UpdateCamera()
        {
            foreach (var cameraTarget in LowPriorityTargets.ToArray())
            {
                cameraTarget.Update(_camera.Pos, CurrentMouseState, MouseInWorld);
            }

            CameraPosition        = _camera.Pos;
            _currentKeyboardState = Keyboard.GetState();

            if (_currentKeyboardState.IsKeyDown(Keys.Right) || _currentKeyboardState.IsKeyDown(Keys.D))
            {
                _camera.Pos += new Vector2(CameraMovementSpeed, 0);
                AutoCamera   = false;
            }
            if (_currentKeyboardState.IsKeyDown(Keys.Left) || _currentKeyboardState.IsKeyDown(Keys.A))
            {
                _camera.Pos += new Vector2(-CameraMovementSpeed, 0);
                AutoCamera   = false;
            }
            if (_currentKeyboardState.IsKeyDown(Keys.Up) || _currentKeyboardState.IsKeyDown(Keys.W))
            {
                _camera.Pos += new Vector2(0, -CameraMovementSpeed);
                AutoCamera   = false;
            }
            if (_currentKeyboardState.IsKeyDown(Keys.Down) || _currentKeyboardState.IsKeyDown(Keys.S))
            {
                _camera.Pos += new Vector2(0, CameraMovementSpeed);
                AutoCamera   = false;
            }

            if (AutoCamera)
            {
                MoveCamera();
            }

            _camera.AccelerateZoom(0.05f * Math.Sign(CurrentMouseState.ScrollWheelValue - PreviousMouseState.ScrollWheelValue));
            _camera.UpdateZoom();
        }