What library would you recommend to hook up my Xbox 360 controller to Java, and be able to read key inputs into keyPressed Event as a KeyEvent.
So I would like something like this
private class KeyInputHandler extends KeyAdapter {
public void keyPressed(KeyEvent e) {
}
}
And I want all the controller presses to go into keyPressed.
I would appreciate it even further if you can provide good libraries for PS3 controllers too.
As mentioned above, Minecraft Java Edition doesn't have native controller support. Thus, to use it in the game, you have to install third-party mods. One of the most popular mods for this purpose is Controllable.
You can play Minecraft Java Edition with an Xbox, PS4, or PS5 controller by way of launching the game on Steam and then configuring the buttons via its Big Picture mode. Here's the simple process of setting up a controller to use with Minecraft Java on PC: Open Steam and add Minecraft as a non-Steam game.
The wired XBox 360 controller will present as a joystick in Windows, so a library like JXInput will allow you to accept inputs from it.
Simple example
JXInput site
There is an open-source project called Jamepad. Download the project and add it to the dependencies of your project. It works out-of-the-box with my wireless Xbox 360 controller.
I made a game with the following input types:
public enum InputAction {
MOVE_UP, MOVE_DOWN, MOVE_LEFT, MOVE_RIGHT
}
The following class will then handle your controller and convert the input to your own internal representation.
public class GamepadInput {
private final ControllerManager controllers;
public GamepadInput() {
controllers = new ControllerManager();
controllers.initSDLGamepad();
}
Set<InputAction> actions() {
ControllerState currState = controllers.getState(0);
if (!currState.isConnected) {
return Collections.emptySet();
}
Set<InputAction> actions = new HashSet<>();
if (currState.dpadLeft) {
actions.add(InputAction.MOVE_LEFT);
}
if (currState.dpadRight) {
actions.add(InputAction.MOVE_RIGHT);
}
if (currState.dpadUp) {
actions.add(InputAction.MOVE_UP);
}
if (currState.dpadDown) {
actions.add(InputAction.MOVE_DOWN);
}
return actions;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With