diff --git a/src/main/java/core/Collidable.java b/src/main/java/core/Collidable.java new file mode 100644 index 0000000..7b14855 --- /dev/null +++ b/src/main/java/core/Collidable.java @@ -0,0 +1,5 @@ +package core; + +public interface Collidable { + +} diff --git a/src/main/java/core/Master.java b/src/main/java/core/Master.java index 54a8d2c..c4e77e9 100644 --- a/src/main/java/core/Master.java +++ b/src/main/java/core/Master.java @@ -3,8 +3,10 @@ package core; import objects.DebugPos; import objects.ships.BattleShip; import objects.GameObject; +import objects.ships.Submarine; import objects.ships.Turret; import objects.world.Grid; +import objects.world.Wall; import javax.swing.*; import java.awt.*; @@ -44,6 +46,9 @@ public class Master extends JPanel { } objects.add(bs); objects.add(battleShip); + + objects.add(new Submarine(new Vector2D(), new Vector2D(20, 20))); + objects.add(new Wall(20, 80, 50, 2)); } /** diff --git a/src/main/java/core/physics/Hitbox.java b/src/main/java/core/physics/Hitbox.java new file mode 100644 index 0000000..3ea04e1 --- /dev/null +++ b/src/main/java/core/physics/Hitbox.java @@ -0,0 +1,5 @@ +package core.physics; + +public abstract class Hitbox { + +} diff --git a/src/main/java/core/physics/RectHitBox.java b/src/main/java/core/physics/RectHitBox.java new file mode 100644 index 0000000..a5afae6 --- /dev/null +++ b/src/main/java/core/physics/RectHitBox.java @@ -0,0 +1,4 @@ +package core.physics; + +public class RectHitBox extends Hitbox{ +} diff --git a/src/main/java/objects/GameObject.java b/src/main/java/objects/GameObject.java index fe7bb84..6e2ae52 100644 --- a/src/main/java/objects/GameObject.java +++ b/src/main/java/objects/GameObject.java @@ -32,6 +32,10 @@ public abstract class GameObject { public abstract void draw(Graphics2D g2d, int w, Master master); public abstract void update(Master master); + public void moveTo(Vector2D target){ + this.position = target; + } + public double getMapCoords(double value, boolean isX){ if (isX){ diff --git a/src/main/java/objects/ships/Submarine.java b/src/main/java/objects/ships/Submarine.java index a9cdd6e..ff913b0 100644 --- a/src/main/java/objects/ships/Submarine.java +++ b/src/main/java/objects/ships/Submarine.java @@ -1,18 +1,26 @@ package objects.ships; import core.Master; +import core.Vector2D; import objects.GameObject; import java.awt.*; public class Submarine extends GameObject { + + public Submarine(Vector2D position, Vector2D size) { + super(position, size); + } + @Override public void draw(Graphics2D g2d, int w, Master master) { - + g2d.setPaint(Color.BLUE); + g2d.fillOval((int) (position.x - size.x / 2), (int) (position.y - size.y / 2), (int) size.x, (int) size.y); } @Override public void update(Master master) { - + Point mouse = master.getMouseLocation(); + moveTo(new Vector2D(mouse.x, mouse.y)); } } diff --git a/src/main/java/objects/world/Wall.java b/src/main/java/objects/world/Wall.java new file mode 100644 index 0000000..5b2e1a9 --- /dev/null +++ b/src/main/java/objects/world/Wall.java @@ -0,0 +1,28 @@ +package objects.world; + +import core.Master; +import objects.GameObject; + +import java.awt.*; + +public class Wall extends GameObject { + + public Wall(double x, double y, double xSize, double ySize) { + super(x, y, xSize, ySize); + } + + @Override + public void draw(Graphics2D g2d, int w, Master master) { + int xAbs = (int) getWorldCoords(position.x, true); + int yAbs = (int) getWorldCoords(position.y, false); + int sizeXAbs = (int) getWorldCoords(size.x, true); + int sizeYAbs = (int) getWorldCoords(size.y, false); + + g2d.setPaint(Color.BLACK); + g2d.fillRect(xAbs, yAbs, sizeXAbs, sizeYAbs); + } + + @Override + public void update(Master master) { + } +} diff --git a/target/classes/core/Master.class b/target/classes/core/Master.class index cb7b329..271caab 100644 Binary files a/target/classes/core/Master.class and b/target/classes/core/Master.class differ diff --git a/target/classes/objects/GameObject.class b/target/classes/objects/GameObject.class index 533e792..5a0ef20 100644 Binary files a/target/classes/objects/GameObject.class and b/target/classes/objects/GameObject.class differ