From 0641c81429c9184253cd46f15ae82db32a741d66 Mon Sep 17 00:00:00 2001 From: musilto9 Date: Thu, 5 Mar 2020 01:56:56 +0100 Subject: [PATCH] baby steps towards loading map bg from file --- src/main/java/Block.java | 2 + src/main/java/Game.java | 2 +- src/main/java/Map.java | 73 ++++++++++++++++++++++++++++ src/main/java/WindowOfFreeMove.java | 2 + src/main/resources/A2_Ground.png | Bin 0 -> 30536 bytes src/main/resources/map-test.txt | 1 + 6 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/A2_Ground.png create mode 100644 src/main/resources/map-test.txt diff --git a/src/main/java/Block.java b/src/main/java/Block.java index a6e3e36..dd167ce 100644 --- a/src/main/java/Block.java +++ b/src/main/java/Block.java @@ -19,5 +19,7 @@ public class Block extends Cell { public void paint(Graphics2D g) { super.paint(g); g.fillOval(getX() * WindowOfFreeMove.CELL_SIZE, getY() * WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE); + g.drawImage(WindowOfFreeMove.getMap().getImagesOfTiles()[102], getX() * WindowOfFreeMove.CELL_SIZE, + getY() * WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE, null); } } \ No newline at end of file diff --git a/src/main/java/Game.java b/src/main/java/Game.java index 9db5f16..6b8c633 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -1,5 +1,5 @@ public class Game { public static void main(String[] args) { - new WindowOfFreeMove().start(); } + new WindowOfFreeMove().start();} } diff --git a/src/main/java/Map.java b/src/main/java/Map.java index 699fdf3..088884a 100644 --- a/src/main/java/Map.java +++ b/src/main/java/Map.java @@ -1,4 +1,11 @@ +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.LinkedList; +import java.io.File; +import java.util.Scanner; public class Map { private String name; @@ -176,4 +183,70 @@ public class Map { return cell; return moveToCells.getFirst(); } + + + + + private static Scanner scanner; + private static BufferedImage image; + private static BufferedImage[] imagesOfTiles; + + + public void readMapFile(String name) { + try { + File mapFile = new File("src/main/resources/" + name + ".txt"); + scanner = new Scanner(mapFile); + String firstLine = scanner.nextLine(); + String[] mapInfo = firstLine.split(" "); + ImageTileset(mapInfo); + } catch (FileNotFoundException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + } + + private void ImageTileset(String[] mapInfo) { + try { + image = ImageIO.read(getClass().getResource(mapInfo[0])); + } catch (IOException e) { + e.printStackTrace(); + } + + int width = Integer.parseInt(mapInfo[1]); + int height = Integer.parseInt(mapInfo[2]); + int tileSize = Integer.parseInt(mapInfo[3]); + + int Xtiles = width / tileSize; + int Ytiles = height / tileSize; + int tiles = Xtiles * Ytiles; + + System.out.println(tiles); + + imagesOfTiles = new BufferedImage[tiles]; + + Rectangle[] rectangles = new Rectangle[tiles]; + int count = 0; + for (int i = 0; i < rectangles.length/Ytiles; i++){ + for (int j = 0; j < rectangles.length/Xtiles; j++) { + rectangles[count] = new Rectangle(tileSize * i, tileSize * j, tileSize, tileSize); + count++; + } + } + + if (rectangles.length < tiles) + throw new IllegalArgumentException(); + + for (int i = 0; i < imagesOfTiles.length; i++) { + imagesOfTiles[i] = image.getSubimage(rectangles[i].x, rectangles[i].y, rectangles[i].height, rectangles[i].width); + } + +// while (scanner.hasNextLine()) { +// String data = scanner.nextLine(); +// System.out.println(imagesOfTiles[Integer.parseInt(data)]); +// } + } + + public BufferedImage[] getImagesOfTiles() { + return imagesOfTiles; + } } diff --git a/src/main/java/WindowOfFreeMove.java b/src/main/java/WindowOfFreeMove.java index 1197491..60f3432 100644 --- a/src/main/java/WindowOfFreeMove.java +++ b/src/main/java/WindowOfFreeMove.java @@ -163,6 +163,8 @@ public class WindowOfFreeMove extends JFrame { map.createMap(); isReadyToPaint = true; canvas.repaint(); + + map.readMapFile("map-test"); // // lp.remove(dialogBar); // diff --git a/src/main/resources/A2_Ground.png b/src/main/resources/A2_Ground.png new file mode 100644 index 0000000000000000000000000000000000000000..92c6cd100f73a5aa204790760cda0c6fc96ce54b GIT binary patch literal 30536 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/map-test.txt b/src/main/resources/map-test.txt new file mode 100644 index 0000000..e192c44 --- /dev/null +++ b/src/main/resources/map-test.txt @@ -0,0 +1 @@ +A2_Ground.png 512 384 32 \ No newline at end of file