diff --git a/src/engine/Engine.java b/src/engine/Engine.java index 3257dcb4a1c875578f392a62505e5867638fe29d..6faa89d36fc16e1f8db2a9cf96916eb4e41219bf 100644 --- a/src/engine/Engine.java +++ b/src/engine/Engine.java @@ -81,7 +81,7 @@ public class Engine gameWindow = new JFrame("The Two Towers Defense"); gameWindow.setResizable(false); gameWindow.setVisible(true); - gameWindow.setSize(1000, 830); + gameWindow.setSize(1200, 770); gameWindow.setLocationRelativeTo(null); gameWindow.setContentPane(new GamePanel(world)); gameWindow.addWindowListener(new WindowAdapter() diff --git a/src/maps/Let_them_come.map b/src/maps/Let_them_come.map new file mode 100644 index 0000000000000000000000000000000000000000..bd89b352ebd41444dd897e04e7bf20b71bfdc8d0 --- /dev/null +++ b/src/maps/Let_them_come.map @@ -0,0 +1,15 @@ +-------------------- +--------------S----- +---------S----R----- +-----S---R----R----- +-S---R---R----R----- +-R---R---R----R----- +-R---R---R----R----- +-RRRRRRRRRRRRRM----- +-R---R---R----R----- +-R---R---R----R----- +-S---R---R----R----- +-----S---R----R----- +---------S----R----- +--------------S----- +-------------------- diff --git a/src/resources/board.png b/src/resources/board.png new file mode 100644 index 0000000000000000000000000000000000000000..3ddf46eb56eeb7566a9a407a95f1d898ae5daa10 Binary files /dev/null and b/src/resources/board.png differ diff --git a/src/view/GamePanel.java b/src/view/GamePanel.java index 04e80a9216b8b33876c39268b0fd14e8a23141c0..6a30397df93d071a9b4f3324df1d5516a98990cf 100644 --- a/src/view/GamePanel.java +++ b/src/view/GamePanel.java @@ -7,13 +7,17 @@ import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.Graphics; +import java.awt.Image; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; +import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.event.MouseInputListener; @@ -26,9 +30,18 @@ import world.World; public class GamePanel extends JPanel { private World world; - private static final int marginTop = 50; + private static final int marginLeft = 200; private Font font, fontGameEnd; private Field clickedField; + private static Image board; + + static{ + try { + board = ImageIO.read(new File("src\\resources\\board.png")); + } catch (IOException e) { + e.printStackTrace(); + } + } public GamePanel(World world) { this.world = world; @@ -43,12 +56,12 @@ public class GamePanel extends JPanel { public void paint(Graphics g) { Point towerRangePoint = null; g.setColor(Color.black); - g.fillRect(0, 0, g.getClipBounds().width, marginTop); + g.drawImage(board, 0, 0, null); for (int i = 0; i < 15; i++) { for (int j = 0; j < 20; j++) { Field f = world.getField(i, j); - int x = j * 50; - int y = i * 50 + marginTop; + int x = j * 50 + marginLeft; + int y = i * 50; FieldView.Draw(f, x, y, g); @@ -80,29 +93,29 @@ public class GamePanel extends JPanel { g.setFont(font); g.setColor(Color.white); - PlayerView.Draw(world.getPlayer(), 30, 30, g); + PlayerView.Draw(world.getPlayer(), 10, 50, g); - SpawnManagerView.Draw(world.getSpawnManager(), 750, 30, g); + SpawnManagerView.Draw(world.getSpawnManager(), 10, 110, g); g.setFont(fontGameEnd); Engine e = world.getEngine(); if (!e.isGameRunning()) { if (!e.isVictory()) { g.setColor(Color.red); - g.drawString("DEFEAT!", 300, 400); + g.drawString("DEFEAT!", 400, 400); } else { g.setColor(Color.green); - g.drawString("VICTORY!", 300, 400); + g.drawString("VICTORY!", 400, 400); } } } private Point getFieldAt(Point screenCoord) { - if (screenCoord.y < marginTop) { + if (screenCoord.x < marginLeft) { return null; } - int fieldY = screenCoord.x / 50; - int fieldX = (screenCoord.y - marginTop) / 50; + int fieldY = (screenCoord.x-marginLeft) / 50; + int fieldX = (screenCoord.y) / 50; return new Point(fieldX, fieldY); } diff --git a/src/world/Tower.java b/src/world/Tower.java index 80c8de765f112d9eaafbe3e0e7c2e4dbb2a0c806..3813c821d56bd673daaab795a1cf536c9e4eebe0 100644 --- a/src/world/Tower.java +++ b/src/world/Tower.java @@ -148,6 +148,9 @@ public class Tower extends Placeable implements ITickable, IEnemyObserver, } public void setRange(int range) { + if (fogDescends) { + range += 1; + } if (range > 4) return; this.range = range;