optimized tile scaling

This commit is contained in:
2025-11-28 15:10:31 +01:00
parent e69809df4c
commit d294d76ca5

View File

@@ -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");