From 90a1d3ce2b864bee0468de523900757bf34fa402 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 29 Jul 2022 15:33:03 -0400 Subject: [PATCH] v1.4.0: mouse and controller cursor positions are now synced --- .../main/java/com/watabou/input/ControllerHandler.java | 3 ++- .../src/main/java/com/watabou/input/InputHandler.java | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java b/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java index 31e757dbd..17597af04 100644 --- a/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java +++ b/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java @@ -156,9 +156,10 @@ public class ControllerHandler implements ControllerListener { controllerPointerActive = active; if (active){ Gdx.input.setCursorCatched(true); - controllerPointerPos = new PointF(Game.width/2, Game.height/2); + controllerPointerPos = new PointF(PointerEvent.currentHoverPos()); } else if (!Cursor.isCursorCaptured()) { Gdx.input.setCursorCatched(false); + Gdx.input.setCursorPosition((int)controllerPointerPos.x, (int)controllerPointerPos.y); } } diff --git a/SPD-classes/src/main/java/com/watabou/input/InputHandler.java b/SPD-classes/src/main/java/com/watabou/input/InputHandler.java index 4ee3f7ad9..bb30580a3 100644 --- a/SPD-classes/src/main/java/com/watabou/input/InputHandler.java +++ b/SPD-classes/src/main/java/com/watabou/input/InputHandler.java @@ -28,6 +28,7 @@ import com.badlogic.gdx.InputMultiplexer; import com.badlogic.gdx.InputProcessor; import com.watabou.noosa.Game; import com.watabou.noosa.ui.Cursor; +import com.watabou.utils.PointF; public class InputHandler extends InputAdapter { @@ -121,7 +122,12 @@ public class InputHandler extends InputAdapter { @Override public boolean mouseMoved(int screenX, int screenY) { - ControllerHandler.setControllerPointer(false); + if (ControllerHandler.controllerPointerActive()) { + ControllerHandler.setControllerPointer(false); + PointF hover = ControllerHandler.getControllerPointerPos(); + screenX = (int)hover.x; + screenY = (int)hover.y; + } PointerEvent.addPointerEvent(new PointerEvent(screenX, screenY, -1, PointerEvent.Type.HOVER)); return true; }