From c31fffdfc521682e0a31f68cdc28bed929a030e4 Mon Sep 17 00:00:00 2001 From: steffen-wilke Date: Sun, 5 Dec 2021 21:18:46 +0100 Subject: [PATCH] Retrieve gamepads by ID instead of index. --- .../litiengine/input/GamepadEntityController.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/de/gurkenlabs/litiengine/input/GamepadEntityController.java b/core/src/main/java/de/gurkenlabs/litiengine/input/GamepadEntityController.java index 0ca8a113a..19a7885fa 100644 --- a/core/src/main/java/de/gurkenlabs/litiengine/input/GamepadEntityController.java +++ b/core/src/main/java/de/gurkenlabs/litiengine/input/GamepadEntityController.java @@ -72,13 +72,14 @@ public void setRotateWithRightStick(boolean rotateWithRightStick) { } private void retrieveGamepadValues() { + final Gamepad gamepad = Input.gamepads().getById(this.gamepadId); if (this.gamepadId == -1 - || this.gamepadId != -1 && Input.gamepads().getById(this.gamepadId) == null) { + || this.gamepadId != -1 && gamepad == null) { return; } - final float x = Input.gamepads().get(this.gamepadId).getPollData(Gamepad.Axis.X); - final float y = Input.gamepads().get(this.gamepadId).getPollData(Gamepad.Axis.Y); + final float x = gamepad.getPollData(Gamepad.Axis.X); + final float y = gamepad.getPollData(Gamepad.Axis.Y); if (Math.abs(x) > this.gamepadDeadzone) { this.setDx(x); @@ -89,8 +90,8 @@ private void retrieveGamepadValues() { } if (this.isRotateWithRightStick()) { - final float rightX = Input.gamepads().get(this.gamepadId).getPollData(Gamepad.Axis.RX); - final float rightY = Input.gamepads().get(this.gamepadId).getPollData(Gamepad.Axis.RY); + final float rightX = gamepad.getPollData(Gamepad.Axis.RX); + final float rightY = gamepad.getPollData(Gamepad.Axis.RY); float targetX = 0; float targetY = 0; if (Math.abs(rightX) > this.gamepadRightStick) {