From d294d76ca5fcc93ebaa923d0942f3b182c09cf98 Mon Sep 17 00:00:00 2001 From: Maurice Date: Fri, 28 Nov 2025 15:10:31 +0100 Subject: [PATCH] optimized tile scaling --- .../miaurizius/jgame2d/tile/TileManager.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/de/miaurizius/jgame2d/tile/TileManager.java b/src/de/miaurizius/jgame2d/tile/TileManager.java index 02cda42..0474af3 100644 --- a/src/de/miaurizius/jgame2d/tile/TileManager.java +++ b/src/de/miaurizius/jgame2d/tile/TileManager.java @@ -5,6 +5,7 @@ import de.miaurizius.jgame2d.core.GamePanel; import javax.imageio.ImageIO; import java.awt.*; +import java.awt.image.BufferedImage; import java.io.*; import java.util.logging.Level; @@ -22,33 +23,34 @@ public class TileManager { loadMap("testworld"); } - public void getTileImage() { + public void initializeTile(int i, String name, boolean col) { try { - tile[0] = new Tile(); - tile[0].image = ImageIO.read(new FileInputStream("assets/tiles/grass.png")); - - tile[1] = new Tile(); - tile[1].image = ImageIO.read(new FileInputStream("assets/tiles/wall.png")); - tile[1].collision = true; - - tile[2] = new Tile(); - tile[2].image = ImageIO.read(new FileInputStream("assets/tiles/water.png")); - tile[2].collision = true; - - tile[3] = new Tile(); - tile[3].image = ImageIO.read(new FileInputStream("assets/tiles/earth.png")); - - tile[4] = new Tile(); - tile[4].image = ImageIO.read(new FileInputStream("assets/tiles/tree.png")); - tile[4].collision = true; - - tile[5] = new Tile(); - tile[5].image = ImageIO.read(new FileInputStream("assets/tiles/sand.png")); - } catch (IOException e) { + tile[i] = new Tile(); + tile[i].image = ImageIO.read(new FileInputStream("assets/tiles/" + name + ".png")); + tile[i].collision = col; + } catch(IOException e) { Boot.logger.log(Level.SEVERE, "Could not load tile", e); } } + public void getTileImage() { + initializeTile(0, "grass", false); + initializeTile(1, "wall", true); + initializeTile(2, "water", true); + initializeTile(3, "earth", false); + initializeTile(4, "tree", true); + initializeTile(5, "sand", false); + + BufferedImage scaledImage; + for (Tile tile : tile) { + if(tile == null) continue; + scaledImage = new BufferedImage(panel.tileSize, panel.tileSize, tile.image.getType()); + Graphics2D g2d = scaledImage.createGraphics(); + g2d.drawImage(tile.image, 0, 0, panel.tileSize, panel.tileSize, null); + tile.image = scaledImage; + } + } + public void loadMap(String map) { try { InputStream stream = new FileInputStream("assets/maps/"+map+".map");