diff --git a/src/main/java/core/Drawable.java b/src/main/java/core/Drawable.java index ddef1bf..6658c96 100644 --- a/src/main/java/core/Drawable.java +++ b/src/main/java/core/Drawable.java @@ -1,7 +1,10 @@ package core; -import java.awt.*; +import java.awt.Graphics2D; +/** + * This interface has to be implemented by every + */ public interface Drawable { /** @@ -12,8 +15,6 @@ public interface Drawable { *
This function is NOT intended to be called manually.
* * @param g2d The {@code Graphics2D} object given by the master - * @param w The width of the screen - * @param master The master object itself */ - void draw(Graphics2D g2d, int w, Master master); + void draw(Graphics2D g2d); } diff --git a/src/main/java/core/Master.java b/src/main/java/core/Master.java index 19b0fc2..6aa2585 100644 --- a/src/main/java/core/Master.java +++ b/src/main/java/core/Master.java @@ -111,7 +111,7 @@ public class Master extends JPanel { Graphics2D g2d = (Graphics2D) g.create(); - drawables.forEach(o -> o.draw(g2d, w, this)); + drawables.forEach(o -> o.draw(g2d)); } diff --git a/src/main/java/core/physics/RectHitBox.java b/src/main/java/core/physics/RectHitBox.java index 0b4cc14..4f68345 100644 --- a/src/main/java/core/physics/RectHitBox.java +++ b/src/main/java/core/physics/RectHitBox.java @@ -149,7 +149,7 @@ public class RectHitBox extends Hitbox { } @Override - public void draw(Graphics2D g2d, int w, Master master) { + public void draw(Graphics2D g2d) { this.w = w; int h = (int) (w / Master.SCREEN_RATIO); diff --git a/src/main/java/objects/DebugPos.java b/src/main/java/objects/DebugPos.java index e731685..20f888f 100644 --- a/src/main/java/objects/DebugPos.java +++ b/src/main/java/objects/DebugPos.java @@ -1,6 +1,5 @@ package objects; -import core.Master; import core.math.Vector2D; import java.awt.*; @@ -15,7 +14,7 @@ public class DebugPos extends GameObject { } @Override - public void draw(Graphics2D g2d, int w, Master master) { + public void draw(Graphics2D g2d) { g2d.setPaint(Color.green); g2d.drawOval((int) (position.x - size.x / 2), (int) (position.y - size.y / 2), (int) size.x, (int) size.y); } diff --git a/src/main/java/objects/GameObject.java b/src/main/java/objects/GameObject.java index b6420f6..bb13948 100644 --- a/src/main/java/objects/GameObject.java +++ b/src/main/java/objects/GameObject.java @@ -10,13 +10,10 @@ import java.awt.*; /** * The GameObject class is the superclass of every GameObject that can be displayed on screen. It has the 2 - * {@link #update()} and {@link #draw(Graphics2D, int, Master)} methods that have to be + * {@link #update()} and {@link #draw(Graphics2D)} methods that have to be */ public abstract class GameObject implements Drawable { - protected int w; - protected int h; - protected Vector2D position; protected Vector2D size; @@ -67,11 +64,8 @@ public abstract class GameObject implements Drawable { * This method draws a rectangle at the current position and size * * @param g2d The Graphics2D object provided by the master - * @param w The width of the screen */ - public void drawRect(Graphics2D g2d, int w) { - this.w = w; - h = (int) (this.w / Master.SCREEN_RATIO); + public void drawRect(Graphics2D g2d) { Vector2D abs = Coords.getWorldCoords(position); Vector2D sizeAbs = Coords.getWorldCoordsSize(size); @@ -83,11 +77,8 @@ public abstract class GameObject implements Drawable { * This method draws a rectangle at the current position and size * * @param g2d The Graphics2D object provided by the master - * @param w The width of the screen */ - public void drawOval(Graphics2D g2d, int w) { - this.w = w; - h = (int) (this.w / Master.SCREEN_RATIO); + public void drawOval(Graphics2D g2d) { Vector2D abs = Coords.getWorldCoords(position); Vector2D sizeAbs = Coords.getWorldCoordsSize(size); @@ -99,13 +90,10 @@ public abstract class GameObject implements Drawable { * This method draws a rounded rectangle at the current position and size * * @param g2d The Graphics2D object provided by the master - * @param w The width of the screen * @param arcW The arc width of the rectangle * @param arcH The arc height of the rectangle */ - public void drawRoundRect(Graphics2D g2d, int w, int arcW, int arcH) { - this.w = w; - h = (int) (w / Master.SCREEN_RATIO); + public void drawRoundRect(Graphics2D g2d, int arcW, int arcH) { Vector2D abs = Coords.getWorldCoords(position); Vector2D sizeAbs = Coords.getWorldCoordsSize(size); diff --git a/src/main/java/objects/ships/BattleShip.java b/src/main/java/objects/ships/BattleShip.java index a936191..1356515 100644 --- a/src/main/java/objects/ships/BattleShip.java +++ b/src/main/java/objects/ships/BattleShip.java @@ -1,6 +1,5 @@ package objects.ships; -import core.Master; import objects.GameObject; import java.awt.*; @@ -27,10 +26,10 @@ public class BattleShip extends GameObject { } @Override - public void draw(Graphics2D g2d, int w, Master master) { + public void draw(Graphics2D g2d) { - drawRoundRect(g2d, w, w/10, w/10); - turrets.forEach((turret -> turret.draw(g2d, w, master))); + drawRoundRect(g2d, master.getW()/10, master.getW()/10); + turrets.forEach((turret -> turret.draw(g2d))); } @Override diff --git a/src/main/java/objects/ships/Shell.java b/src/main/java/objects/ships/Shell.java index 830f7a9..14f466d 100644 --- a/src/main/java/objects/ships/Shell.java +++ b/src/main/java/objects/ships/Shell.java @@ -1,6 +1,5 @@ package objects.ships; -import core.Master; import core.math.Vector2D; import objects.GameObject; @@ -15,7 +14,7 @@ public class Shell extends GameObject { } @Override - public void draw(Graphics2D g2d, int w, Master master) { + public void draw(Graphics2D g2d) { g2d.setPaint(Color.orange); g2d.fillOval((int) position.x, (int) position.y, (int) size.x, (int) size.y); } diff --git a/src/main/java/objects/ships/Submarine.java b/src/main/java/objects/ships/Submarine.java index 985c8e5..7bb43fa 100644 --- a/src/main/java/objects/ships/Submarine.java +++ b/src/main/java/objects/ships/Submarine.java @@ -1,7 +1,6 @@ package objects.ships; import core.Coords; -import core.Master; import core.math.Vector2D; import core.physics.Collidable; import core.physics.Hitbox; @@ -21,9 +20,9 @@ public class Submarine extends GameObject implements Collidable { } @Override - public void draw(Graphics2D g2d, int w, Master master) { + public void draw(Graphics2D g2d) { g2d.setPaint(Color.BLUE); - drawOval(g2d, w); + drawOval(g2d); } @Override diff --git a/src/main/java/objects/ships/Turret.java b/src/main/java/objects/ships/Turret.java index 6fe83b1..ea5ff2c 100644 --- a/src/main/java/objects/ships/Turret.java +++ b/src/main/java/objects/ships/Turret.java @@ -1,7 +1,6 @@ package objects.ships; import core.math.ExMath; -import core.Master; import core.math.Vector2D; import objects.GameObject; @@ -42,8 +41,7 @@ public class Turret extends GameObject { } @Override - public void draw(Graphics2D g2d, int w, Master master) { - h = w / 16 * 9; + public void draw(Graphics2D g2d) { g2d.setPaint(mainColor); Vector2D abs = battleShip.getWorldCoordsFromLocal(position); int sizeAbs = (int) battleShip.getWorldCoordsFromLocalSize(size).x; diff --git a/src/main/java/objects/world/Grid.java b/src/main/java/objects/world/Grid.java index 83a555e..8d68f32 100644 --- a/src/main/java/objects/world/Grid.java +++ b/src/main/java/objects/world/Grid.java @@ -10,23 +10,23 @@ import java.awt.*; */ public class Grid extends GameObject { - private final int gridSpacing = 50; + private static final int GRID_SPACING = 50; public Grid() { super(0, 0, 0, 0); } @Override - public void draw(Graphics2D g2d, int w, Master master) { + public void draw(Graphics2D g2d) { g2d.setPaint(Color.LIGHT_GRAY); - this.w = w; - h = w/16*9; + int w = master.getW(); + int h = w/16*9; g2d.drawRect(0, 0, w, h); - int verticalLines = w / gridSpacing; - int horizontalLines = h / gridSpacing; + int verticalLines = w / GRID_SPACING; + int horizontalLines = h / GRID_SPACING; for (int i = 0; i < horizontalLines; i++) { int y = i * h / horizontalLines; diff --git a/src/main/java/objects/world/Wall.java b/src/main/java/objects/world/Wall.java index ee0dbe6..61e68c5 100644 --- a/src/main/java/objects/world/Wall.java +++ b/src/main/java/objects/world/Wall.java @@ -1,6 +1,5 @@ package objects.world; -import core.Master; import core.math.Vector2D; import core.physics.Collidable; import core.physics.Hitbox; @@ -19,8 +18,8 @@ public class Wall extends GameObject implements Collidable { } @Override - public void draw(Graphics2D g2d, int w, Master master) { - drawRect(g2d, w); + public void draw(Graphics2D g2d) { + drawRect(g2d); } @Override diff --git a/target/classes/core/Master.class b/target/classes/core/Master.class index 49e3fdf..dde115f 100644 Binary files a/target/classes/core/Master.class and b/target/classes/core/Master.class differ diff --git a/target/classes/objects/DebugPos.class b/target/classes/objects/DebugPos.class index 608784c..f2867d2 100644 Binary files a/target/classes/objects/DebugPos.class and b/target/classes/objects/DebugPos.class differ diff --git a/target/classes/objects/GameObject.class b/target/classes/objects/GameObject.class index b0b4774..967cd7a 100644 Binary files a/target/classes/objects/GameObject.class and b/target/classes/objects/GameObject.class differ diff --git a/target/classes/objects/ships/BattleShip.class b/target/classes/objects/ships/BattleShip.class index 0b699a8..7799251 100644 Binary files a/target/classes/objects/ships/BattleShip.class and b/target/classes/objects/ships/BattleShip.class differ diff --git a/target/classes/objects/ships/Shell.class b/target/classes/objects/ships/Shell.class index 95ddbfe..91994d2 100644 Binary files a/target/classes/objects/ships/Shell.class and b/target/classes/objects/ships/Shell.class differ diff --git a/target/classes/objects/ships/Turret.class b/target/classes/objects/ships/Turret.class index e77ea7d..fddcfd6 100644 Binary files a/target/classes/objects/ships/Turret.class and b/target/classes/objects/ships/Turret.class differ diff --git a/target/classes/objects/world/Grid.class b/target/classes/objects/world/Grid.class index 463e07d..394b5da 100644 Binary files a/target/classes/objects/world/Grid.class and b/target/classes/objects/world/Grid.class differ