Example usage for com.badlogic.gdx.controllers ControllerListener ControllerListener

List of usage examples for com.badlogic.gdx.controllers ControllerListener ControllerListener

Introduction

In this page you can find the example usage for com.badlogic.gdx.controllers ControllerListener ControllerListener.

Prototype

ControllerListener

Source Link

Usage

From source file:com.tnf.ptm.screens.game.ShipControllerControl.java

License:Apache License

ShipControllerControl(PtmApplication ptmApplication) {
    final GameOptions gameOptions = ptmApplication.getOptions();

    Controllers.clearListeners();/*  w ww .j av  a2s. c  o m*/

    // print the currently connected controllers to the console
    logger.printDebug(String.format("Controllers Size: {}", Controllers.getControllers().size));
    int i = 0;
    for (Controller controller : Controllers.getControllers()) {
        logger.printDebug(String.format("#{}:{}", i++, controller.getName()));
    }

    // setup the listener that prints events to the console
    Controllers.addListener(new ControllerListener() {
        int indexOf(Controller controller) {
            return Controllers.getControllers().indexOf(controller, true);
        }

        @Override
        public void connected(Controller controller) {
        }

        @Override
        public void disconnected(Controller controller) {
        }

        @Override
        public boolean buttonDown(Controller controller, int buttonIndex) {
            if (buttonIndex == gameOptions.getControllerButtonShoot()) {
                controllerShoot = true;
            } else if (buttonIndex == gameOptions.getControllerButtonShoot2()) {
                controllerShoot2 = true;
            } else if (buttonIndex == gameOptions.getControllerButtonAbility()) {
                controllerAbility = true;
            } else if (buttonIndex == gameOptions.getControllerButtonLeft()) {
                controllerLeft = true;
            } else if (buttonIndex == gameOptions.getControllerButtonRight()) {
                controllerRight = true;
            } else if (buttonIndex == gameOptions.getControllerButtonUp()) {
                controllerUp = true;
            }

            return true;
        }

        @Override
        public boolean buttonUp(Controller controller, int buttonIndex) {
            if (buttonIndex == gameOptions.getControllerButtonShoot()) {
                controllerShoot = false;
            } else if (buttonIndex == gameOptions.getControllerButtonShoot2()) {
                controllerShoot2 = false;
            } else if (buttonIndex == gameOptions.getControllerButtonAbility()) {
                controllerAbility = false;
            } else if (buttonIndex == gameOptions.getControllerButtonLeft()) {
                controllerLeft = false;
            } else if (buttonIndex == gameOptions.getControllerButtonRight()) {
                controllerRight = false;
            } else if (buttonIndex == gameOptions.getControllerButtonUp()) {
                controllerUp = false;
            }

            return true;
        }

        @Override
        public boolean axisMoved(Controller controller, int axisIndex, float value) {
            if (axisIndex == gameOptions.getControllerAxisShoot()) {
                controllerShoot = (value > 0.5f);
            } else if (axisIndex == gameOptions.getControllerAxisShoot2()) {
                controllerShoot2 = (value > 0.5f);
            } else if (axisIndex == gameOptions.getControllerAxisAbility()) {
                controllerAbility = (value > 0.5f);
            } else if (axisIndex == gameOptions.getControllerAxisLeftRight()) {
                boolean invert = gameOptions.isControllerAxisLeftRightInverted();
                if (value < -0.5f) {
                    controllerLeft = !invert;
                    controllerRight = invert;
                } else if (value > 0.5f) {
                    controllerLeft = invert;
                    controllerRight = !invert;
                } else {
                    controllerLeft = false;
                    controllerRight = false;
                }
            } else if (axisIndex == gameOptions.getControllerAxisUpDown()) {
                boolean invert = gameOptions.isControllerAxisUpDownInverted();
                if (value < -0.5f) {
                    controllerUp = !invert;
                    controllerDown = invert;
                } else if (value > 0.5f) {
                    controllerUp = invert;
                    controllerDown = !invert;
                } else {
                    controllerUp = false;
                    controllerDown = false;
                }
            }

            return true;
        }

        @Override
        public boolean povMoved(Controller controller, int povIndex, PovDirection value) {
            logger.printDebug(String.format("#{}, pov {}: {}", indexOf(controller), povIndex, value));
            return false;
        }

        @Override
        public boolean xSliderMoved(Controller controller, int sliderIndex, boolean value) {
            logger.printDebug(String.format("#{},  x slider  {}: {}", indexOf(controller), sliderIndex, value));
            return false;
        }

        @Override
        public boolean ySliderMoved(Controller controller, int sliderIndex, boolean value) {
            logger.printDebug(String.format("#{},  y slider  {}: {}", indexOf(controller), sliderIndex, value));
            return false;
        }

        @Override
        public boolean accelerometerMoved(Controller controller, int accelerometerIndex, Vector3 value) {
            // not printing this as we get too many values
            return false;
        }
    });

}

From source file:com.tnf.ptm.screens.main.InputMapControllerScreen.java

License:Apache License

@Override
public void setEnterNewKey(boolean newKey) {
    isEnterNewKey = newKey;/*from   ww w. j  a v  a 2  s  .  c o m*/

    // Cancel the key input
    if (!isEnterNewKey) {
        Gdx.input.setInputProcessor(null);
        Controllers.clearListeners();
    } else {
        // Capture the new key input
        // Keyboard items
        Gdx.input.setInputProcessor(new InputAdapter() {
            @Override
            public boolean keyUp(int keycode) {
                // Don't capture the escape key
                if (keycode == Input.Keys.ESCAPE) {
                    return true;
                }

                if (selectedIndex >= controllerItems) {
                    removeDuplicateKeys(keycode);
                    InputConfigItem item = itemsList.get(selectedIndex);
                    item.setInputKey(Input.Keys.toString(keycode));
                    itemsList.set(selectedIndex, item);
                }

                Gdx.input.setInputProcessor(null);
                Controllers.clearListeners();

                isEnterNewKey = false;
                return true; // return true to indicate the event was handled
            }
        });

        // Controller items
        // setup the listener that prints events to the console
        Controllers.addListener(new ControllerListener() {
            public int indexOf(Controller controller) {
                return Controllers.getControllers().indexOf(controller, true);
            }

            @Override
            public void connected(Controller controller) {
            }

            @Override
            public void disconnected(Controller controller) {
            }

            @Override
            public boolean buttonDown(Controller controller, int buttonIndex) {
                // Do nothing on button down - register the button up event
                return true;
            }

            @Override
            public boolean buttonUp(Controller controller, int buttonIndex) {
                logger.printDebug(String.format("#{}, button  {} up", indexOf(controller), buttonIndex));

                if (selectedIndex < controllerItems) {
                    removeDuplicateButtons(buttonIndex);
                    InputConfigItem item = itemsList.get(selectedIndex);
                    item.setIsAxis(false);
                    item.setControllerInput(buttonIndex);
                    item.setInputKey("Button: " + buttonIndex);
                    itemsList.set(selectedIndex, item);
                }

                Gdx.input.setInputProcessor(null);
                Controllers.clearListeners();

                isEnterNewKey = false;
                return true; // return true to indicate the event was handled
            }

            @Override
            public boolean axisMoved(Controller controller, int axisIndex, float value) {
                logger.printDebug(String.format("#{}, axis {}: {}", indexOf(controller), axisIndex, value));

                if (value > 0.5f || value < -0.5f) {
                    if (selectedIndex < controllerItems) {
                        InputConfigItem item = itemsList.get(selectedIndex);
                        item.setIsAxis(true);
                        item.setControllerInput(axisIndex);
                        item.setInputKey("Axis: " + axisIndex);
                        itemsList.set(selectedIndex, item);
                    }

                    Gdx.input.setInputProcessor(null);
                    Controllers.clearListeners();

                    isEnterNewKey = false;

                }
                return true;
            }

            @Override
            public boolean povMoved(Controller controller, int povIndex, PovDirection value) {
                return false;
            }

            @Override
            public boolean xSliderMoved(Controller controller, int sliderIndex, boolean value) {
                return false;
            }

            @Override
            public boolean ySliderMoved(Controller controller, int sliderIndex, boolean value) {
                return false;
            }

            @Override
            public boolean accelerometerMoved(Controller controller, int accelerometerIndex, Vector3 value) {
                return false;
            }
        });
    }
}

From source file:org.destinationsol.game.screens.ShipControllerControl.java

License:Apache License

public ShipControllerControl(SolApplication cmp) {
    final GameOptions gameOptions = cmp.getOptions();

    Controllers.clearListeners();//  w  ww  .  j  a  v  a  2  s . c  om

    // print the currently connected controllers to the console
    System.out.println("Controllers: " + Controllers.getControllers().size);
    int i = 0;
    for (Controller controller : Controllers.getControllers()) {
        System.out.println("#" + i++ + ": " + controller.getName());
    }

    // setup the listener that prints events to the console
    Controllers.addListener(new ControllerListener() {
        public int indexOf(Controller controller) {
            return Controllers.getControllers().indexOf(controller, true);
        }

        @Override
        public void connected(Controller controller) {
        }

        @Override
        public void disconnected(Controller controller) {
        }

        @Override
        public boolean buttonDown(Controller controller, int buttonIndex) {
            if (buttonIndex == gameOptions.getControllerButtonShoot()) {
                controllerShoot = true;
            } else if (buttonIndex == gameOptions.getControllerButtonShoot2()) {
                controllerShoot2 = true;
            } else if (buttonIndex == gameOptions.getControllerButtonAbility()) {
                controllerAbility = true;
            } else if (buttonIndex == gameOptions.getControllerButtonLeft()) {
                controllerLeft = true;
            } else if (buttonIndex == gameOptions.getControllerButtonRight()) {
                controllerRight = true;
            } else if (buttonIndex == gameOptions.getControllerButtonUp()) {
                controllerUp = true;
            }

            return true;
        }

        @Override
        public boolean buttonUp(Controller controller, int buttonIndex) {
            if (buttonIndex == gameOptions.getControllerButtonShoot()) {
                controllerShoot = false;
            } else if (buttonIndex == gameOptions.getControllerButtonShoot2()) {
                controllerShoot2 = false;
            } else if (buttonIndex == gameOptions.getControllerButtonAbility()) {
                controllerAbility = false;
            } else if (buttonIndex == gameOptions.getControllerButtonLeft()) {
                controllerLeft = false;
            } else if (buttonIndex == gameOptions.getControllerButtonRight()) {
                controllerRight = false;
            } else if (buttonIndex == gameOptions.getControllerButtonUp()) {
                controllerUp = false;
            }

            return true;
        }

        @Override
        public boolean axisMoved(Controller controller, int axisIndex, float value) {
            if (axisIndex == gameOptions.getControllerAxisShoot()) {
                if (value > 0.5f) {
                    controllerShoot = true;
                } else {
                    controllerShoot = false;
                }
            }

            else if (axisIndex == gameOptions.getControllerAxisShoot2()) {
                if (value > 0.5f) {
                    controllerShoot2 = true;
                } else {
                    controllerShoot2 = false;
                }
            }

            else if (axisIndex == gameOptions.getControllerAxisAbility()) {
                if (value > 0.5f) {
                    controllerAbility = true;
                } else {
                    controllerAbility = false;
                }
            }

            else if (axisIndex == gameOptions.getControllerAxisLeftRight()) {
                boolean invert = gameOptions.isControllerAxisLeftRightInverted();
                if (value < -0.5f) {
                    controllerLeft = invert ? false : true;
                    controllerRight = invert ? true : false;
                } else if (value > 0.5f) {
                    controllerLeft = invert ? true : false;
                    controllerRight = invert ? false : true;
                } else {
                    controllerLeft = false;
                    controllerRight = false;
                }
            }

            else if (axisIndex == gameOptions.getControllerAxisUpDown()) {
                boolean invert = gameOptions.isControllerAxisUpDownInverted();
                if (value < -0.5f) {
                    controllerUp = invert ? false : true;
                    controllerDown = invert ? true : false;
                } else if (value > 0.5f) {
                    controllerUp = invert ? true : false;
                    controllerDown = invert ? false : true;
                } else {
                    controllerUp = false;
                    controllerDown = false;
                }
            }

            return true;
        }

        @Override
        public boolean povMoved(Controller controller, int povIndex, PovDirection value) {
            System.out.println("#" + indexOf(controller) + ", pov " + povIndex + ": " + value);
            return false;
        }

        @Override
        public boolean xSliderMoved(Controller controller, int sliderIndex, boolean value) {
            System.out.println("#" + indexOf(controller) + ", x slider " + sliderIndex + ": " + value);
            return false;
        }

        @Override
        public boolean ySliderMoved(Controller controller, int sliderIndex, boolean value) {
            System.out.println("#" + indexOf(controller) + ", y slider " + sliderIndex + ": " + value);
            return false;
        }

        @Override
        public boolean accelerometerMoved(Controller controller, int accelerometerIndex, Vector3 value) {
            // not printing this as we get to many values
            return false;
        }
    });

}

From source file:org.destinationsol.menu.InputMapControllerScreen.java

License:Apache License

@Override
public void setEnterNewKey(boolean newKey) {
    isEnterNewKey = newKey;// w w w  .  j  a va  2s.co  m

    // Cancel the key input
    if (!isEnterNewKey) {
        Gdx.input.setInputProcessor(null);
        Controllers.clearListeners();
    } else {
        // Capture the new key input
        // Keyboard items
        Gdx.input.setInputProcessor(new InputAdapter() {
            @Override
            public boolean keyUp(int keycode) {
                // Don't capture the escape key
                if (keycode == Input.Keys.ESCAPE)
                    return true;

                if (selectedIndex >= controllerItems) {
                    removeDuplicateKeys(keycode);
                    InputConfigItem item = itemsList.get(selectedIndex);
                    item.setInputKey(Input.Keys.toString(keycode));
                    itemsList.set(selectedIndex, item);
                }

                Gdx.input.setInputProcessor(null);
                Controllers.clearListeners();

                isEnterNewKey = false;
                return true; // return true to indicate the event was handled
            }
        });

        // Controller items
        // setup the listener that prints events to the console
        Controllers.addListener(new ControllerListener() {
            public int indexOf(Controller controller) {
                return Controllers.getControllers().indexOf(controller, true);
            }

            @Override
            public void connected(Controller controller) {
            }

            @Override
            public void disconnected(Controller controller) {
            }

            @Override
            public boolean buttonDown(Controller controller, int buttonIndex) {
                // Do nothing on button down - register the button up event
                return true;
            }

            @Override
            public boolean buttonUp(Controller controller, int buttonIndex) {
                System.out.println("#" + indexOf(controller) + ", button " + buttonIndex + " up");

                if (selectedIndex < controllerItems) {
                    removeDuplicateButtons(buttonIndex);
                    InputConfigItem item = itemsList.get(selectedIndex);
                    item.setIsAxis(false);
                    item.setControllerInput(buttonIndex);
                    item.setInputKey("Button: " + buttonIndex);
                    itemsList.set(selectedIndex, item);
                }

                Gdx.input.setInputProcessor(null);
                Controllers.clearListeners();

                isEnterNewKey = false;
                return true; // return true to indicate the event was handled
            }

            @Override
            public boolean axisMoved(Controller controller, int axisIndex, float value) {
                System.out.println("#" + indexOf(controller) + ", axis " + axisIndex + ": " + value);

                if (value > 0.5f || value < -0.5f) {
                    if (selectedIndex < controllerItems) {
                        InputConfigItem item = itemsList.get(selectedIndex);
                        item.setIsAxis(true);
                        item.setControllerInput(axisIndex);
                        item.setInputKey("Axis: " + axisIndex);
                        itemsList.set(selectedIndex, item);
                    }

                    Gdx.input.setInputProcessor(null);
                    Controllers.clearListeners();

                    isEnterNewKey = false;

                }
                return true;
            }

            @Override
            public boolean povMoved(Controller controller, int povIndex, PovDirection value) {
                return false;
            }

            @Override
            public boolean xSliderMoved(Controller controller, int sliderIndex, boolean value) {
                return false;
            }

            @Override
            public boolean ySliderMoved(Controller controller, int sliderIndex, boolean value) {
                return false;
            }

            @Override
            public boolean accelerometerMoved(Controller controller, int accelerometerIndex, Vector3 value) {
                return false;
            }
        });
    }
}