diff options
-rw-r--r-- | core/src/ch/asynk/tankontank/screens/GameScreen.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/src/ch/asynk/tankontank/screens/GameScreen.java b/core/src/ch/asynk/tankontank/screens/GameScreen.java index 82a92a0..6169509 100644 --- a/core/src/ch/asynk/tankontank/screens/GameScreen.java +++ b/core/src/ch/asynk/tankontank/screens/GameScreen.java @@ -46,6 +46,8 @@ public class GameScreen implements Screen private static final int DRAGGED_Z_INDEX = 10; private float maxZoomOut; + private float virtualWidth; + private float virtualHeight; private final OrthographicCamera cam; private final FitViewport mapViewport; @@ -76,11 +78,13 @@ public class GameScreen implements Screen fps.setPosition( 10, Gdx.graphics.getHeight() - 40); map = factory.getMap(game.manager, GameFactory.MapType.MAP_A); + virtualWidth = map.getWidth(); + virtualHeight = map.getHeight(); mapBatch = new SpriteBatch(); - cam = new OrthographicCamera(); + cam = new OrthographicCamera(virtualWidth, virtualHeight); cam.setToOrtho(false); - mapViewport = new FitViewport(map.getWidth(), map.getHeight(), cam); + mapViewport = new FitViewport(virtualWidth, virtualHeight, cam); mapViewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true); debugShapes = new ShapeRenderer(); @@ -184,8 +188,8 @@ public class GameScreen implements Screen { 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)); + cam.position.x = MathUtils.clamp(cam.position.x, cx, (virtualWidth - cx)); + cam.position.y = MathUtils.clamp(cam.position.y, cy, (virtualHeight - cy)); } @Override |