diff options
Diffstat (limited to 'core/src/ch')
| -rw-r--r-- | core/src/ch/asynk/tankontank/screens/GameScreen.java | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/core/src/ch/asynk/tankontank/screens/GameScreen.java b/core/src/ch/asynk/tankontank/screens/GameScreen.java index 9f86bcb..a460519 100644 --- a/core/src/ch/asynk/tankontank/screens/GameScreen.java +++ b/core/src/ch/asynk/tankontank/screens/GameScreen.java @@ -69,6 +69,7 @@ public class GameScreen extends AbstractScreen              {                  cam.zoom += ((initialDistance - distance) / 300.f);                  cam.zoom = MathUtils.clamp(cam.zoom, 0.4f, maxZoom); +                clampCameraPos();                  return true;              }          })); @@ -79,6 +80,7 @@ public class GameScreen extends AbstractScreen                  cam.translate((touchX - x) * cam.zoom, (y - touchY) * cam.zoom, 0);                  touchX = x;                  touchY = y; +                clampCameraPos();                  return true;              }              @Override @@ -95,6 +97,7 @@ public class GameScreen extends AbstractScreen              {                  cam.zoom += amount / ZOOM_FACTOR;                  cam.zoom = MathUtils.clamp(cam.zoom, 0.4f, maxZoom); +                clampCameraPos();                  return true;              }          }); @@ -102,17 +105,20 @@ public class GameScreen extends AbstractScreen          return multiplexer;      } +    private void clampCameraPos() +    { +        float cx = cam.viewportWidth * cam.zoom / 2f; +        float cy = cam.viewportHeight * cam.zoom / 2f; +        cam.position.x = MathUtils.clamp(cam.position.x, cx, (map.getWidth() - cx)); +        cam.position.y = MathUtils.clamp(cam.position.y, cy, (map.getHeight() - cy)); +    } +      @Override      public void render(float delta)      {          Gdx.gl.glClearColor(0, 0, 0.2f, 1);          Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); -        // handleInput(); -        float width = cam.viewportWidth * cam.zoom / 2f; -        float height = cam.viewportHeight * cam.zoom / 2f; -        cam.position.x = MathUtils.clamp(cam.position.x, width, (mapSprite.getWidth() - width)); -        cam.position.y = MathUtils.clamp(cam.position.y, height, (mapSprite.getHeight() - height));          cam.update();          batch.setProjectionMatrix(cam.combined); | 
