Esempio n. 1
0
 private void PlaceSelectedBlock(Blocks selectedItem)
 {
     _world.PlaceBlock(PlayerMouse.GetSelectedX(), PlayerMouse.GetSelectedY(), selectedItem);
 }
Esempio n. 2
0
        public InputController(OrthographicCamera cam, SpriteBatch spriteBatch, ContentManager contentManager, Main main, World world, Player player, PlayerMouse playerMouse)
        {
            Input        = "Down";
            _cam         = cam;
            _spriteBatch = spriteBatch;
            _main        = main;
            _world       = world;
            _player      = player;
            _playerMouse = playerMouse;
            _frameNumber = 0;
            _texture     = contentManager.Load <Texture2D>("man");
            const int tileSize = 32;

            _animations = new Dictionary <string, Rectangle[]>
            {
                ["Idle"] = new[]
                {
                    new Rectangle((0 + 4) * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle((0 + 4) * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle((0 + 4) * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle((0 + 4) * tileSize, 0, tileSize, tileSize * 2),
                },
                ["Up"] = new[]
                {
                    new Rectangle(0 * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle(1 * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle(2 * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle(3 * tileSize, 0, tileSize, tileSize * 2)
                },
                ["Right"] = new[]
                {
                    new Rectangle((0 + 4) * tileSize, 2 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((1 + 4) * tileSize, 2 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((2 + 4) * tileSize, 2 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((3 + 4) * tileSize, 2 * tileSize, tileSize, tileSize * 2)
                },
                ["UpRight"] = new[]
                {
                    new Rectangle((0 + 4) * tileSize, 4 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((1 + 4) * tileSize, 4 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((2 + 4) * tileSize, 4 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((3 + 4) * tileSize, 4 * tileSize, tileSize, tileSize * 2)
                },
                ["DownRight"] = new[]
                {
                    new Rectangle((0 + 4) * tileSize, 6 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((1 + 4) * tileSize, 6 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((2 + 4) * tileSize, 6 * tileSize, tileSize, tileSize * 2),
                    new Rectangle((3 + 4) * tileSize, 6 * tileSize, tileSize, tileSize * 2)
                },
                ["Left"] = new[]
                {
                    new Rectangle(0 * tileSize, 2 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(1 * tileSize, 2 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(2 * tileSize, 2 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(3 * tileSize, 2 * tileSize, tileSize, tileSize * 2)
                },
                ["UpLeft"] = new[]
                {
                    new Rectangle(0 * tileSize, 4 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(1 * tileSize, 4 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(2 * tileSize, 4 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(3 * tileSize, 4 * tileSize, tileSize, tileSize * 2)
                },
                ["DownLeft"] = new[]
                {
                    new Rectangle(0 * tileSize, 6 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(1 * tileSize, 6 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(2 * tileSize, 6 * tileSize, tileSize, tileSize * 2),
                    new Rectangle(3 * tileSize, 6 * tileSize, tileSize, tileSize * 2)
                },
                ["Down"] = new[]
                {
                    new Rectangle((0 + 4) * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle((1 + 4) * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle((2 + 4) * tileSize, 0, tileSize, tileSize * 2),
                    new Rectangle((3 + 4) * tileSize, 0, tileSize, tileSize * 2)
                },
            };
        }
Esempio n. 3
0
        public void PlayerInput(GameTime gameTime)
        {
            const float movementSpeed = IRestrictions.MovementSpeed;
            var         keyboardState = Keyboard.GetState();
            var         mouseState    = Mouse.GetState();

            if (keyboardState.IsKeyDown(Keys.Escape))
            {
                _main.Quit();
            }

            if (keyboardState.IsKeyUp(Keys.W) && keyboardState.IsKeyUp(Keys.A) && keyboardState.IsKeyUp(Keys.S) &&
                keyboardState.IsKeyUp(Keys.D))
            {
                Input = "Idle";
            }
            UpdateAnimationFrame(gameTime);
            const float diagonalMovement = 0.707f;

            if (keyboardState.IsKeyDown(Keys.W) && keyboardState.IsKeyDown(Keys.D))
            {
                Input = "UpRight";
                _player.Move(_cam, movementSpeed * diagonalMovement, -movementSpeed * diagonalMovement);
            }
            else if (keyboardState.IsKeyDown(Keys.W) && keyboardState.IsKeyDown(Keys.A))
            {
                _player.Move(_cam, -movementSpeed * diagonalMovement, -movementSpeed * diagonalMovement);
                Input = "UpLeft";
            }
            else if (keyboardState.IsKeyDown(Keys.S) && keyboardState.IsKeyDown(Keys.D))
            {
                Input = "DownRight";
                _player.Move(_cam, movementSpeed * diagonalMovement, movementSpeed * diagonalMovement);
            }
            else if (keyboardState.IsKeyDown(Keys.S) && keyboardState.IsKeyDown(Keys.A))
            {
                Input = "DownLeft";
                _player.Move(_cam, -movementSpeed * diagonalMovement, movementSpeed * diagonalMovement);
            }
            else if (keyboardState.IsKeyDown(Keys.W))
            {
                Input = "Up";
                _player.Move(_cam, 0, -movementSpeed);
            }
            else if (keyboardState.IsKeyDown(Keys.A))
            {
                Input = "Left";
                _player.Move(_cam, -movementSpeed, 0);
            }
            else if (keyboardState.IsKeyDown(Keys.S))
            {
                Input = "Down";
                _player.Move(_cam, 0, movementSpeed);
            }
            else if (keyboardState.IsKeyDown(Keys.D))
            {
                Input = "Right";
                _player.Move(_cam, movementSpeed, 0);
            }
            if (keyboardState.IsKeyDown(Keys.Q))
            {
                _cam.ZoomIn(1f);
            }
            if (keyboardState.IsKeyDown(Keys.E))
            {
                _cam.ZoomOut(1f);
            }
            if (mouseState.LeftButton == ButtonState.Pressed)
            {
                _world.RemoveBlock(PlayerMouse.GetSelectedX(), PlayerMouse.GetSelectedY());
            }
            if (mouseState.RightButton == ButtonState.Pressed)
            {
                PlaceSelectedBlock(Inventory.GetSelectedItem());
            }
        }