From 44c47a01d4b8381c1ef5718c78227669289ddeb8 Mon Sep 17 00:00:00 2001 From: musilto9 Date: Thu, 12 Mar 2020 22:15:06 +0100 Subject: [PATCH] now multiple tilesets can be loaded to one map --- src/main/java/Block.java | 2 +- src/main/java/ImageCell.java | 34 ++++++++++++++++++---------- src/main/java/InteractionCell.java | 17 +++++--------- src/main/java/WindowOfFreeMove.java | 6 ++--- src/main/resources/D_OutDoor.png | Bin 0 -> 36532 bytes src/main/resources/m1-tileset.txt | 2 ++ src/main/resources/map-test.txt | 1 - 7 files changed, 34 insertions(+), 28 deletions(-) create mode 100644 src/main/resources/D_OutDoor.png create mode 100644 src/main/resources/m1-tileset.txt delete mode 100644 src/main/resources/map-test.txt diff --git a/src/main/java/Block.java b/src/main/java/Block.java index ba7e83b..310b36a 100644 --- a/src/main/java/Block.java +++ b/src/main/java/Block.java @@ -21,7 +21,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(imageCell.getImagesOfTiles()[102], getX() * WindowOfFreeMove.CELL_SIZE, + g.drawImage(imageCell.getImagesOfTiles().get(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/ImageCell.java b/src/main/java/ImageCell.java index f09584a..b8cb271 100644 --- a/src/main/java/ImageCell.java +++ b/src/main/java/ImageCell.java @@ -4,42 +4,52 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.util.LinkedList; import java.util.Scanner; public class ImageCell { private static BufferedImage image; - private static BufferedImage[] imagesOfTiles; + private static LinkedList imagesOfTiles; public void readMapFile(String name) { try { File mapFile = new File("src/main/resources/" + name + ".txt"); Scanner scanner = new Scanner(mapFile); - String firstLine = scanner.nextLine(); - String[] mapInfo = firstLine.split(" "); - ImageTileset(mapInfo); + while (scanner.hasNextLine()) { + String data = scanner.nextLine(); + if (data.contains("")) { + String[] mapInfo = data.split(" "); + ImageTileset(mapInfo); + } + } } catch (FileNotFoundException e) { System.out.println("An error occurred."); e.printStackTrace(); } } + public void readMapFileDirect(String[] mapInfo) { + ImageTileset(mapInfo); + } + private void ImageTileset(String[] mapInfo) { try { - image = ImageIO.read(getClass().getResource(mapInfo[0])); + image = ImageIO.read(getClass().getResource(mapInfo[1])); } catch (IOException e) { e.printStackTrace(); } - int width = Integer.parseInt(mapInfo[1]); - int height = Integer.parseInt(mapInfo[2]); - int tileSize = Integer.parseInt(mapInfo[3]); + int width = Integer.parseInt(mapInfo[2]); + int height = Integer.parseInt(mapInfo[3]); + int tileSize = Integer.parseInt(mapInfo[4]); int Xtiles = width / tileSize; int Ytiles = height / tileSize; int tiles = Xtiles * Ytiles; - imagesOfTiles = new BufferedImage[tiles]; + if (imagesOfTiles == null) + imagesOfTiles = new LinkedList(); Rectangle[] rectangles = new Rectangle[tiles]; int count = 0; @@ -50,8 +60,8 @@ public class ImageCell { } } - for (int i = 0; i < imagesOfTiles.length; i++) { - imagesOfTiles[i] = image.getSubimage(rectangles[i].x, rectangles[i].y, rectangles[i].height, rectangles[i].width); + for (int i = 0; i < tiles; i++) { + imagesOfTiles.add(image.getSubimage(rectangles[i].x, rectangles[i].y, rectangles[i].height, rectangles[i].width)); } // while (scanner.hasNextLine()) { @@ -60,7 +70,7 @@ public class ImageCell { // } } - public BufferedImage[] getImagesOfTiles() { + public LinkedList getImagesOfTiles() { return imagesOfTiles; } } diff --git a/src/main/java/InteractionCell.java b/src/main/java/InteractionCell.java index b30d30b..bc9985e 100644 --- a/src/main/java/InteractionCell.java +++ b/src/main/java/InteractionCell.java @@ -7,20 +7,13 @@ public class InteractionCell extends Cell { private String message; private Dialog dialog; private Scanner scanner; + private ImageCell imageCell; - InteractionCell(){ - super(-1,-1, WindowOfFreeMove.CELL_SIZE, Color.ORANGE); - } - - InteractionCell(int x, int y, String message, Dialog dialog) { - super(x, y, WindowOfFreeMove.CELL_SIZE, Color.ORANGE); + InteractionCell(int x, int y, String message, Dialog dialog, ImageCell imageCell) { + super(x, y, WindowOfFreeMove.CELL_SIZE, Color.WHITE); this.message = message; this.dialog = dialog; - } - - InteractionCell(int x, int y, Dialog dialog) { - super(x, y, WindowOfFreeMove.CELL_SIZE, Color.ORANGE); - this.dialog = dialog; + this.imageCell = imageCell; } public void startEvent() { @@ -69,5 +62,7 @@ public class InteractionCell extends Cell { @Override public void paint(Graphics2D g) { super.paint(g); + g.drawImage(imageCell.getImagesOfTiles().get(334), getX() * WindowOfFreeMove.CELL_SIZE, + getY() * WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE, null); } } diff --git a/src/main/java/WindowOfFreeMove.java b/src/main/java/WindowOfFreeMove.java index ea9054e..5367b7c 100644 --- a/src/main/java/WindowOfFreeMove.java +++ b/src/main/java/WindowOfFreeMove.java @@ -143,8 +143,8 @@ public class WindowOfFreeMove extends JFrame { m1.addMoveToEvent(new EventMoveToCell(1, 1, 8, 8, m2, this)); m1.addMoveToEvent(new EventMoveToCell(4, 3, 8, 1, m4, this)); - m1.addInteractionEvent(new InteractionCell(3,5,"first-dialog", new Dialog(dialogBar))); - m1.addInteractionEvent(new InteractionCell(5,5,"dialog-test", new Dialog(dialogBar))); + m1.addInteractionEvent(new InteractionCell(3,5,"first-dialog", new Dialog(dialogBar), m1.getImageCell())); + m1.addInteractionEvent(new InteractionCell(5, 5, "dialog-test", new Dialog(dialogBar), m1.getImageCell())); m2.addMoveToEvent(new EventMoveToCell(2, 1, 8, 8, m3, this)); m2.addMoveToEvent(new EventMoveToCell(1, 3, 8, 1, m1, this)); @@ -155,7 +155,7 @@ public class WindowOfFreeMove extends JFrame { m4.addMoveToEvent(new EventMoveToCell(4, 1, 8, 8, m1, this)); m4.addMoveToEvent(new EventMoveToCell(3, 3, 8, 1, m3, this)); - m1.getImageCell().readMapFile("map-test"); + m1.getImageCell().readMapFile("m1-tileset"); setMap(m1); map.createMap(); diff --git a/src/main/resources/D_OutDoor.png b/src/main/resources/D_OutDoor.png new file mode 100644 index 0000000000000000000000000000000000000000..20386a6e66cc05e0b18898a9c07c2fa6de8abd8a GIT binary patch literal 36532 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

^rnOCEo!w*aycKtitwd80@DE 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/m1-tileset.txt b/src/main/resources/m1-tileset.txt new file mode 100644 index 0000000..cb91cdd --- /dev/null +++ b/src/main/resources/m1-tileset.txt @@ -0,0 +1,2 @@ + A2_Ground.png 512 384 32 + D_OutDoor.png 512 512 32 \ No newline at end of file diff --git a/src/main/resources/map-test.txt b/src/main/resources/map-test.txt deleted file mode 100644 index e192c44..0000000 --- a/src/main/resources/map-test.txt +++ /dev/null @@ -1 +0,0 @@ -A2_Ground.png 512 384 32 \ No newline at end of file