你会推荐什么库来将我的 Xbox 360 控制器连接到 Java,并且能够将键输入作为 KeyEvent 读取到 keyPressed 事件中。
所以我想要这样的东西
private class KeyInputHandler extends KeyAdapter {
public void keyPressed(KeyEvent e) {
}
}
我希望所有的控制器按下都进入 keyPressed。
如果您也可以为 PS3 控制器提供好的库,我将更加感激。
有一个名为Jamepad的开源项目。下载项目并将其添加到项目的依赖项中。它可以与我的无线 Xbox 360 控制器一起使用。
我用以下输入类型制作了一个游戏:
public enum InputAction {
MOVE_UP, MOVE_DOWN, MOVE_LEFT, MOVE_RIGHT
}
然后,以下类将处理您的控制器并将输入转换为您自己的内部表示。
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;
}
}