diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-16 12:26:08 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-16 12:26:08 +0200 | 
| commit | f986dd3fe0c0cb1e73e47fab2deb5a0929f185a9 (patch) | |
| tree | 2ebbba3c2ea4d8657a98ebd1fd41c11dcd3a1ebc | |
| parent | c47b62c26608f04139488354440d1c9167b779a7 (diff) | |
| download | RustAndDust-f986dd3fe0c0cb1e73e47fab2deb5a0929f185a9.zip RustAndDust-f986dd3fe0c0cb1e73e47fab2deb5a0929f185a9.tar.gz | |
GameScreen: add inputDelay after touchUp, drag, scroll, zoom
| -rw-r--r-- | core/src/ch/asynk/tankontank/screens/GameScreen.java | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/core/src/ch/asynk/tankontank/screens/GameScreen.java b/core/src/ch/asynk/tankontank/screens/GameScreen.java index bf965ed..067a898 100644 --- a/core/src/ch/asynk/tankontank/screens/GameScreen.java +++ b/core/src/ch/asynk/tankontank/screens/GameScreen.java @@ -31,6 +31,7 @@ public class GameScreen implements Screen  {      private static final boolean DEBUG = false; +    private static final float INPUT_DELAY = 0.5f;      private static final float ZOOM_IN_MAX = 0.2f;      private static final float ZOOM_GESTURE_FACTOR = .01f;      private static final float ZOOM_SCROLL_FACTOR = .1f; @@ -51,6 +52,7 @@ public class GameScreen implements Screen      private final TankOnTank game;      private Ctrl ctrl; +    private float inputDelay = 0f;      private Vector2 dragPos = new Vector2();      private Vector3 touchPos = new Vector3();      private Vector2 screenToWorld = new Vector2(); @@ -93,6 +95,7 @@ public class GameScreen implements Screen                      cam.zoom -= ZOOM_GESTURE_FACTOR;                  cam.zoom = MathUtils.clamp(cam.zoom, ZOOM_IN_MAX, maxZoomOut);                  clampCameraPos(); +                inputDelay = INPUT_DELAY;                  return true;              }          })); @@ -105,11 +108,13 @@ public class GameScreen implements Screen                  dragPos.set(x, y);                  cam.translate(-deltaX, -deltaY, 0);                  clampCameraPos(); +                inputDelay = INPUT_DELAY;                  return true;              }              @Override              public boolean touchDown(int x, int y, int pointer, int button)              { +                if (inputDelay > 0f) return true;                  if (button == Input.Buttons.LEFT) {                      dragPos.set(x, y);                      if (ctrl.mayProcessTouch()) { @@ -120,12 +125,12 @@ public class GameScreen implements Screen                          }                      }                  } -                  return true;              }              @Override              public boolean touchUp(int x, int y, int pointer, int button)              { +                if (inputDelay > 0f) return true;                  if (button == Input.Buttons.LEFT) {                      if (ctrl.mayProcessTouch()) {                          unprojectToHud(x, y, touchPos); @@ -135,6 +140,7 @@ public class GameScreen implements Screen                          }                      }                  } +                inputDelay = INPUT_DELAY;                  return true;              }              @Override @@ -143,6 +149,7 @@ public class GameScreen implements Screen                  cam.zoom += amount * ZOOM_SCROLL_FACTOR;                  cam.zoom = MathUtils.clamp(cam.zoom, ZOOM_IN_MAX, maxZoomOut);                  clampCameraPos(); +                inputDelay = INPUT_DELAY;                  return true;              }          }); @@ -175,6 +182,8 @@ public class GameScreen implements Screen      @Override      public void render(float delta)      { +        if (inputDelay > 0f) +            inputDelay -= delta;          Gdx.gl.glClearColor(0, 0, 0, 1);          Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); | 
