From 584a34f7c4f2263c29271e84c7d0ad52f9e6df68 Mon Sep 17 00:00:00 2001 From: Oskar Wiksten Date: Sun, 14 Oct 2012 12:25:23 +0200 Subject: [PATCH] Center smaller maps on main view. --- .../gpl/rpg/AndorsTrail/view/MainView.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java index c575833..b8e82ce 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java @@ -57,6 +57,7 @@ public final class MainView extends SurfaceView implements SurfaceHolder.Callbac private LayeredTileMap currentTileMap; private TileCollection tiles; private final Coord playerPosition = new Coord(); + private Size surfaceSize; public MainView(Context context, AttributeSet attr) { super(context, attr); @@ -101,17 +102,13 @@ public final class MainView extends SurfaceView implements SurfaceHolder.Callbac this.scale = world.tileManager.scale; this.scaledTileSize = world.tileManager.viewTileSize; + this.surfaceSize = new Size(w, h); screenSizeTileCount = new Size( (int) Math.floor(w / scaledTileSize) ,(int) Math.floor(h / scaledTileSize) ); - - screenOffset.set( - (w - (scaledTileSize * screenSizeTileCount.width)) / 2 - ,(h - (scaledTileSize * screenSizeTileCount.height)) / 2 - ); - + if (model.currentMap != null) { notifyMapChanged(model); } @@ -340,14 +337,18 @@ public final class MainView extends SurfaceView implements SurfaceHolder.Callbac synchronized (holder) { currentMap = model.currentMap; currentTileMap = model.currentTileMap; - Size mapViewSize = new Size( - Math.min(screenSizeTileCount.width, currentMap.size.width) - ,Math.min(screenSizeTileCount.height, currentMap.size.height) - ); - - mapViewArea = new CoordRect(mapTopLeft, mapViewSize); - tiles = world.tileManager.currentMapTiles; + + Size visibleNumberOfTiles = new Size( + Math.min(screenSizeTileCount.width, currentMap.size.width) + ,Math.min(screenSizeTileCount.height, currentMap.size.height) + ); + mapViewArea = new CoordRect(mapTopLeft, visibleNumberOfTiles); + + screenOffset.set( + (surfaceSize.width - scaledTileSize * visibleNumberOfTiles.width) / 2 + ,(surfaceSize.height - scaledTileSize * visibleNumberOfTiles.height) / 2 + ); } clearCanvas(); -- 2.49.0