From 1ce5080705f5abb5ac46ce00884ad452c5bb69db Mon Sep 17 00:00:00 2001 From: "jason@long.name" Date: Sat, 20 Jul 2013 21:29:53 +0000 Subject: [PATCH] drawing-area: allow zooming from 8px to 32px, using unique graphics source for each level git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@756 d9718cc8-9f43-0410-858b-315f434eb58c --- build.xml | 6 ++++++ src/micropolisj/gui/MainWindow.java | 2 +- src/micropolisj/gui/TileImages.java | 17 +++++++++++------ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/build.xml b/build.xml index 37e7609..dd3ad6c 100644 --- a/build.xml +++ b/build.xml @@ -50,6 +50,12 @@ + + + + + diff --git a/src/micropolisj/gui/MainWindow.java b/src/micropolisj/gui/MainWindow.java index 7ad7f42..2d990bf 100644 --- a/src/micropolisj/gui/MainWindow.java +++ b/src/micropolisj/gui/MainWindow.java @@ -996,7 +996,7 @@ public class MainWindow extends JFrame int oldZoom = drawingArea.getTileSize(); int newZoom = zoomOut ? (oldZoom / 2) : (oldZoom * 2); - if (newZoom < 16) { newZoom = 16; } + if (newZoom < 8) { newZoom = 8; } if (newZoom > 32) { newZoom = 32; } if (oldZoom != newZoom) diff --git a/src/micropolisj/gui/TileImages.java b/src/micropolisj/gui/TileImages.java index 0fe9707..b8630ee 100644 --- a/src/micropolisj/gui/TileImages.java +++ b/src/micropolisj/gui/TileImages.java @@ -29,17 +29,22 @@ public class TileImages this.TILE_WIDTH = size; this.TILE_HEIGHT = size; - //if (size != 16) { - // this.images = loadTileImages("/tiles_"+size+"x"+size+".png", size); - //} - //else { + if (size != 16) { + this.images = loadTileImages("/tiles_"+size+"x"+size+".png", size); + } + else { this.images = loadTileImages("/tiles.png", 16); - //} + } } + static Map savedInstances = new HashMap(); + public static TileImages getInstance(int size) { - return new TileImages(size); + if (!savedInstances.containsKey(size)) { + savedInstances.put(size, new TileImages(size)); + } + return savedInstances.get(size); } public Image getTileImage(int cell)