diff --git a/src/GamePanel.java b/src/GamePanel.java index e28ac7f..427b7b4 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -64,9 +64,9 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ } player = new Player(GAME_WIDTH/2, GAME_HEIGHT/2, 'W', 'A', 'S', 'D', spriteArray); //create a player controlled player, set start location to middle of screenk // the height of 35 is set because it is half of the original tile height (i.e., 70px) - map.add(new SingleTile(1000, 500, box, 35)); - map.add(new SingleTile(700, 400, boxCoin, 35)); - map.add(new SingleTile(1000, 300, boxCoin, 35)); + map.add(new SingleTile(1000, 500, box)); + map.add(new SingleTile(700, 400, boxCoin)); + map.add(new SingleTile(1000, 300, boxCoin)); map.add(new Tile(700, 200)); this.setFocusable(true); //make everything in this class appear on the screen this.addKeyListener(this); //start listening for keyboard input @@ -142,7 +142,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ public void run(){ try { MapReader.inputMap(map, "src/Level1.txt"); - } catch (IOException e) { + } catch (IOException | SpriteException e) { throw new RuntimeException(e); } //the CPU runs our game code too quickly - we need to slow it down! The following lines of code "force" the computer to get stuck in a loop for short intervals between calling other methods to update the screen. @@ -187,7 +187,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ } - public BufferedImage getImage(String imageLocation) throws IOException { + public static BufferedImage getImage(String imageLocation) throws IOException { return ImageIO.read(new File(imageLocation)); } diff --git a/src/MapReader.java b/src/MapReader.java index 9561bf0..7776806 100644 --- a/src/MapReader.java +++ b/src/MapReader.java @@ -4,7 +4,7 @@ import java.util.Scanner; public class MapReader { //Input game map - public static void inputMap(ArrayList map, String filePath) throws IOException { + public static void inputMap(ArrayList map, String filePath) throws IOException, SpriteException { String file = FileManager.readFile(filePath); int x = 0; int y = 0; @@ -14,7 +14,7 @@ public class MapReader { x=0; } else if(file.charAt(i)=='1'){ - map.add(new Tile(x,y)); + map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grass.png"))); } x+=Tile.length; } diff --git a/src/SingleTile.java b/src/SingleTile.java index d4c79df..454ca8b 100644 --- a/src/SingleTile.java +++ b/src/SingleTile.java @@ -2,17 +2,14 @@ import java.awt.*; import java.awt.image.BufferedImage; public class SingleTile extends Tile { - public int length; public BufferedImage tileImage; - public SingleTile(int x, int y, BufferedImage tileImage, int length) throws SpriteException { + public SingleTile(int x, int y, BufferedImage tileImage) throws SpriteException { super(x, y); if (tileImage.getWidth() != tileImage.getHeight()) { throw new SpriteException(); } - - this.length = length; this.tileImage = tileImage; } public void draw(Graphics g){