From 47b2a55b111f380baf8afa586e1a1efab31e16ae Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Thu, 19 Jun 2014 13:10:54 +0200 Subject: [PATCH] gdx: add keys for scale and tilt --- vtm-gdx/src/org/oscim/gdx/InputHandler.java | 33 +++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/vtm-gdx/src/org/oscim/gdx/InputHandler.java b/vtm-gdx/src/org/oscim/gdx/InputHandler.java index ba299ec0..8235e979 100644 --- a/vtm-gdx/src/org/oscim/gdx/InputHandler.java +++ b/vtm-gdx/src/org/oscim/gdx/InputHandler.java @@ -25,7 +25,7 @@ public class InputHandler implements InputProcessor { } private boolean mActiveScale; - //private boolean mActiveTilt; + private boolean mActiveTilt; private boolean mActiveRotate; private int mPosX, mPosY; @@ -40,6 +40,17 @@ public class InputHandler implements InputProcessor { Gdx.app.exit(); break; + case Input.Keys.SHIFT_LEFT: + mActiveScale = true; + mPosY = Gdx.input.getY(); + break; + + case Input.Keys.CONTROL_LEFT: + mActiveTilt = true; + mPosX = Gdx.input.getX(); + mPosY = Gdx.input.getY(); + break; + case Input.Keys.UP: mViewport.moveMap(0, -50); mMap.updateMap(true); @@ -108,6 +119,16 @@ public class InputHandler implements InputProcessor { @Override public boolean keyUp(int keycode) { + switch (keycode) { + case Input.Keys.SHIFT_LEFT: + mActiveScale = false; + break; + case Input.Keys.CONTROL_LEFT: + mActiveTilt = false; + break; + + } + return false; } @@ -142,11 +163,16 @@ public class InputHandler implements InputProcessor { public boolean touchDragged(int screenX, int screenY, int pointer) { boolean changed = false; - if (!(mActiveScale || mActiveRotate)) + if (!(mActiveScale || mActiveRotate || mActiveTilt)) return false; + if (mActiveTilt) { + changed = mViewport.tiltMap((screenY - mPosY) / 5f); + mPosY = screenY; + + } + if (mActiveScale) { - // changed = mMapPosition.tilt((screenY - mStartY) / 5f); changed = mViewport.scaleMap(1 - (screenY - mPosY) / 100f, 0, 0); mPosY = screenY; } @@ -167,6 +193,7 @@ public class InputHandler implements InputProcessor { @Override public boolean mouseMoved(int screenX, int screenY) { + mPosX = screenX; mPosY = screenY; return false;