From 81855c6a6d5ddcd47af99d7588a2ca6d3c1e0fdd Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Mon, 21 Dec 2020 14:45:53 +0100 Subject: [PATCH] idk --- .../math/{Coords.java => Coordinates.java} | 8 +++--- src/main/java/core/objects/base/DebugPos.java | 1 - .../java/core/objects/core/GameObject.java | 24 +++++++++--------- .../core/physics/hitboxes/RectHitBox.java | 7 ++--- src/main/java/objects/Init.java | 2 +- src/main/java/objects/ships/BattleShip.java | 9 ++++--- src/main/java/objects/ships/Submarine.java | 4 +-- src/main/java/objects/ships/Turret.java | 8 +++--- target/classes/objects/ships/BattleShip.class | Bin 2412 -> 3330 bytes target/classes/objects/ships/Shell.class | Bin 1384 -> 1417 bytes target/classes/objects/ships/Turret.class | Bin 3870 -> 3862 bytes 11 files changed, 33 insertions(+), 30 deletions(-) rename src/main/java/core/math/{Coords.java => Coordinates.java} (89%) diff --git a/src/main/java/core/math/Coords.java b/src/main/java/core/math/Coordinates.java similarity index 89% rename from src/main/java/core/math/Coords.java rename to src/main/java/core/math/Coordinates.java index 7a60ef1..2f3a83f 100644 --- a/src/main/java/core/math/Coords.java +++ b/src/main/java/core/math/Coordinates.java @@ -7,12 +7,12 @@ import core.general.Master; *

In this system, the screen is always 100 high and 100 * the screen ration wide. * This class is the used to convert these coordinates into the true Java 2D coordinates for the drawing

*/ -public class Coords { +public class Coordinates { /** * This utility class should not be instantiated */ - private Coords() { + private Coordinates() { } /** @@ -27,7 +27,7 @@ public class Coords { * @param value A point in map coordinates * @return The point in world coordinates */ - public static Vector2D getWorldCoords(Vector2D value) { + public static Vector2D getWorldCoordinates(Vector2D value) { double x = (value.x / Master.SCREEN_Y_COORDINATES / Master.SCREEN_RATIO * master.getW()); double y = (value.y / Master.SCREEN_Y_COORDINATES * master.getH()); return new Vector2D(x, y); @@ -39,7 +39,7 @@ public class Coords { * @param value The Vector2D position in Java 2D coordinates * @return The Vector2D position in map coordinates */ - public static Vector2D getMapCoordsFromWorld(Vector2D value) { + public static Vector2D getMapCoordinatesFromWorld(Vector2D value) { double x = (value.x / master.getW()) * Master.SCREEN_Y_COORDINATES * Master.SCREEN_RATIO; double y = (value.y / master.getH()) * Master.SCREEN_Y_COORDINATES; return new Vector2D(x, y); diff --git a/src/main/java/core/objects/base/DebugPos.java b/src/main/java/core/objects/base/DebugPos.java index d13c840..3299c63 100644 --- a/src/main/java/core/objects/base/DebugPos.java +++ b/src/main/java/core/objects/base/DebugPos.java @@ -1,6 +1,5 @@ package core.objects.base; -import core.math.Coords; import core.math.Vector2D; import core.objects.core.GameObject; diff --git a/src/main/java/core/objects/core/GameObject.java b/src/main/java/core/objects/core/GameObject.java index a25a285..2c57b83 100644 --- a/src/main/java/core/objects/core/GameObject.java +++ b/src/main/java/core/objects/core/GameObject.java @@ -1,6 +1,6 @@ package core.objects.core; -import core.math.Coords; +import core.math.Coordinates; import core.general.Drawable; import core.general.Master; import core.math.Vector2D; @@ -43,7 +43,7 @@ public abstract class GameObject implements Drawable { * Gets called at the start of the update method */ public void startUpdate(){ - if(doesDespawn && Coords.outOfBounds(position, size)){ + if(doesDespawn && Coordinates.outOfBounds(position, size)){ destroy(); } update(); @@ -72,8 +72,8 @@ public abstract class GameObject implements Drawable { * @param g2d The Graphics2D object provided by the master */ public void drawRect(Graphics2D g2d) { - Vector2D abs = Coords.getWorldCoords(position); - Vector2D sizeAbs = Coords.getWorldCoords(size); + Vector2D abs = Coordinates.getWorldCoordinates(position); + Vector2D sizeAbs = Coordinates.getWorldCoordinates(size); g2d.setPaint(mainColor); g2d.fillRect((int) abs.x, (int) abs.y, (int) sizeAbs.x, (int) sizeAbs.y); @@ -85,8 +85,8 @@ public abstract class GameObject implements Drawable { * @param g2d The Graphics2D object provided by the master */ public void fillOval(Graphics2D g2d) { - Vector2D abs = Coords.getWorldCoords(position); - Vector2D sizeAbs = Coords.getWorldCoords(size); + Vector2D abs = Coordinates.getWorldCoordinates(position); + Vector2D sizeAbs = Coordinates.getWorldCoordinates(size); g2d.setPaint(mainColor); g2d.fillOval((int) abs.x, (int) abs.y, (int) sizeAbs.x, (int) sizeAbs.y); @@ -111,12 +111,12 @@ public abstract class GameObject implements Drawable { Vector2D abs; if(arg.contains("center")){ - abs = Coords.getWorldCoords(new Vector2D(position.x - size.x / 2, position.y - size.y / 2)); + abs = Coordinates.getWorldCoordinates(new Vector2D(position.x - size.x / 2, position.y - size.y / 2)); } else { - abs = Coords.getWorldCoords(position); + abs = Coordinates.getWorldCoordinates(position); } - Vector2D sizeAbs = Coords.getWorldCoords(size); + Vector2D sizeAbs = Coordinates.getWorldCoordinates(size); g2d.setPaint(mainColor); g2d.drawOval((int) abs.x, (int) abs.y, (int) sizeAbs.x, (int) sizeAbs.y); @@ -131,8 +131,8 @@ public abstract class GameObject implements Drawable { */ public void drawRoundRect(Graphics2D g2d, int arcW, int arcH) { - Vector2D abs = Coords.getWorldCoords(position); - Vector2D sizeAbs = Coords.getWorldCoords(size); + Vector2D abs = Coordinates.getWorldCoordinates(position); + Vector2D sizeAbs = Coordinates.getWorldCoordinates(size); int xCenterAbs = (int) (abs.x + sizeAbs.x / 2); int yCenterAbs = (int) (abs.y + sizeAbs.y / 2); @@ -158,7 +158,7 @@ public abstract class GameObject implements Drawable { } public Vector2D getWorldCoordsFromLocal(Vector2D value) { - return Coords.getWorldCoords(getMapCoords(value)); + return Coordinates.getWorldCoordinates(getMapCoords(value)); } diff --git a/src/main/java/core/physics/hitboxes/RectHitBox.java b/src/main/java/core/physics/hitboxes/RectHitBox.java index ccbc774..dadfc8c 100644 --- a/src/main/java/core/physics/hitboxes/RectHitBox.java +++ b/src/main/java/core/physics/hitboxes/RectHitBox.java @@ -1,6 +1,6 @@ package core.physics.hitboxes; -import core.math.Coords; +import core.math.Coordinates; import core.general.Master; import core.math.Vector2D; import objects.Init; @@ -10,6 +10,7 @@ import java.awt.*; /** * A rectangular hitbox */ +//TODO hitbox position not calculated correctlyA public class RectHitBox extends Hitbox { /** @@ -176,8 +177,8 @@ public class RectHitBox extends Hitbox { @Override public void draw(Graphics2D g2d) { - Vector2D abs = Coords.getWorldCoords(x1); - Vector2D sizeAbs = Coords.getWorldCoords(Vector2D.subtract(y2, x1)); + Vector2D abs = Coordinates.getWorldCoordinates(x1); + Vector2D sizeAbs = Coordinates.getWorldCoordinates(Vector2D.subtract(y2, x1)); g2d.setPaint(Color.MAGENTA); g2d.drawRect((int) abs.x, (int) abs.y, (int) sizeAbs.x, (int) sizeAbs.y); diff --git a/src/main/java/objects/Init.java b/src/main/java/objects/Init.java index 55548e8..2220fed 100644 --- a/src/main/java/objects/Init.java +++ b/src/main/java/objects/Init.java @@ -16,7 +16,7 @@ import java.awt.*; */ public class Init { - public static final boolean DEBUG_MODE = false; + public static final boolean DEBUG_MODE = true; /** * Create a new GameObject diff --git a/src/main/java/objects/ships/BattleShip.java b/src/main/java/objects/ships/BattleShip.java index 22dd72f..c390e4e 100644 --- a/src/main/java/objects/ships/BattleShip.java +++ b/src/main/java/objects/ships/BattleShip.java @@ -2,7 +2,9 @@ package objects.ships; import core.general.Input; import core.math.Vector2D; +import core.objects.core.CollGameObject; import core.objects.core.GameObject; +import core.physics.hitboxes.RectHitBox; import java.awt.*; import java.awt.event.KeyEvent; @@ -11,7 +13,7 @@ import java.util.ArrayList; /** * A Battleship that can have several turrets */ -public class BattleShip extends GameObject { +public class BattleShip extends CollGameObject { public static final double SPPED = 1; private static final double TURN_RATE = 0.05; @@ -29,7 +31,7 @@ public class BattleShip extends GameObject { } public BattleShip(double x, double y, double xSize, double ySize, Color mainColor) { - super(x, y, xSize, ySize); + super(x, y, xSize, ySize, new RectHitBox(new Vector2D(x, y), new Vector2D(xSize, ySize))); turrets = new ArrayList<>(); this.mainColor = mainColor; this.doesDespawn = false; @@ -46,7 +48,8 @@ public class BattleShip extends GameObject { public void update() { if (playerControlled) { - position.add(getV2DRotation().multiply(Input.getVerticalAxis() * SPPED)); + + moveTo(Vector2D.add(position, getV2DRotation().multiply(Input.getVerticalAxis() * SPPED))); rotation += Input.getHorizontalAxis() * TURN_RATE; } diff --git a/src/main/java/objects/ships/Submarine.java b/src/main/java/objects/ships/Submarine.java index 701f1ff..a39d1cd 100644 --- a/src/main/java/objects/ships/Submarine.java +++ b/src/main/java/objects/ships/Submarine.java @@ -1,6 +1,6 @@ package objects.ships; -import core.math.Coords; +import core.math.Coordinates; import core.math.Vector2D; import core.physics.hitboxes.RectHitBox; import core.objects.core.CollGameObject; @@ -24,7 +24,7 @@ public class Submarine extends CollGameObject { @Override public void update() { Point mouse = master.getMouseLocation(); - Vector2D relPos = Coords.getMapCoordsFromWorld(new Vector2D(mouse.x, mouse.y)); + Vector2D relPos = Coordinates.getMapCoordinatesFromWorld(new Vector2D(mouse.x, mouse.y)); Vector2D centerRelPos = new Vector2D(relPos.x - size.x/2, relPos.y - size.y/2); moveTo(centerRelPos); } diff --git a/src/main/java/objects/ships/Turret.java b/src/main/java/objects/ships/Turret.java index 4856d38..49932af 100644 --- a/src/main/java/objects/ships/Turret.java +++ b/src/main/java/objects/ships/Turret.java @@ -1,7 +1,7 @@ package objects.ships; import core.general.Input; -import core.math.Coords; +import core.math.Coordinates; import core.math.ExMath; import core.math.Vector2D; import core.objects.core.GameObject; @@ -44,13 +44,13 @@ public class Turret extends GameObject { public void draw(Graphics2D g2d) { g2d.setPaint(mainColor); Vector2D abs = battleShip.getWorldCoordsFromLocal(position); - int sizeAbs = (int) Coords.getWorldCoords(size).x; + int sizeAbs = (int) Coordinates.getWorldCoordinates(size).x; int xCenterAbs = (int) (abs.x + sizeAbs / 2); int yCenterAbs = (int) (abs.y + sizeAbs / 2); g2d.fillOval((int) abs.x, (int) abs.y, sizeAbs, sizeAbs); - g2d.setStroke(new BasicStroke((int) Coords.getWorldCoords(new Vector2D(size.x / barrelAmount / BARREL_THICKNESS, 0)).x, BasicStroke.CAP_BUTT, + g2d.setStroke(new BasicStroke((int) Coordinates.getWorldCoordinates(new Vector2D(size.x / barrelAmount / BARREL_THICKNESS, 0)).x, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); //BARRELS--------------------------------------- @@ -79,7 +79,7 @@ public class Turret extends GameObject { public void update() { Point msLoc = master.getMouseLocation(); - Vector2D mouseRel = Coords.getMapCoordsFromWorld(Vector2D.fromPoint(msLoc)); //100 correct + Vector2D mouseRel = Coordinates.getMapCoordinatesFromWorld(Vector2D.fromPoint(msLoc)); //100 correct Vector2D centerMap = battleShip.getMapCoords(getCenterPosition()); double targetRotation = -Math.atan2(centerMap.x - mouseRel.x, centerMap.y - mouseRel.y); diff --git a/target/classes/objects/ships/BattleShip.class b/target/classes/objects/ships/BattleShip.class index 83e9cc9d0f1889ef77c0e7deaa45b3b4c04251b2..8f154ff38a78e362c08aa4d378563fcf65b8e798 100644 GIT binary patch delta 1901 zcmaDO)Fj1q>ff$?3=9m`3_CV*c`(*b>KSRZVPbAC>adtz>?KUk2FK~=-W#l;0;8iw0Fz@Ct`1{o~N zUaB5@#leuz z!%)Cb$jHE!n_re1k`J;NiviY_(o{D44-8QS%-P`YK z2E*<33?^F4TN%`}b~DIEZfCIE%D}57$+?xm1|;f$?k*(;RR(beEe2%LKdsAIYTWbr0^EL)|0j?YbYa4^F))od{?OhCk3=G>CLJ_Xy1KXp`AjzP^ zpvIsJb{QnZ)Zs2uXPC?|1sq~i8LS!VA#qX%jw1#JYppE|YBL$Mw6wM`L~3ngh~2@E z$e+E9A$MZwleaPyft<06p&ITAW(H6kih=!T#K6vA!XU?B z#-PVw$za7`1$GT6jzCoiB>tu`)H5(JGcf8gFfvSMm;v>^69W_2`&=O7wYM?Igd=>& z1(va8;AF4^n+Ne77uff$?3=9m`40Rj1JQxGG7}Oaw*cmi=7`Pd<7#U=e^NUjT^OLetlS_*A z!5sI*+*E(C03!pthKq}fi)I)XgDis%NQ*8b1G9!^7$*YTqb2UV;%+* z2Ghywn3TEA87$ZtEO{8L7_2AXVNz$a5MzYqf>gC|JFi;+QILv!*BW?3#S20;cN9tK|qzsY&5DwFrKu4HtXoXTc9c@vx0 zWO4QqzDzELEQV}$h8!M-T!y^OGuc@f84D)QC<7T* z&chJLpv%a>~hwO3~WC6`Prof z42ldK4C)LF42%py4EziN42%r^3=9lR3;_&m42%ri41o-c3_%PG3`-ce8JHLt7!oE= zz^Xg9nff$?3=9m`41OEA{xd3ZGVn5J@i1sJXfQHxr{t#=yQCHuB$nrKG4L|z z@-XNz=uZ}A(vmaeVK8D4WMtqd$S=+;$;{8=VlZJaWoIzsVNhl;pB&8;#b(LFV8viP zc{h_fn=KE69fSSm7fig2f({If42}#83=hti+{nPdz{KFh zz`!8Kz&_cQMY3L>L5#tffq_8_qLjgf!Ic373_!LsFoLu*xG@MaFo9VD41x^I42%r! z4Ej(@>=>B9a%@`K+Zc2Z=5v8Xr5IQlq`~Hkf%$B3^Vt|Y7(5vm>lqjsycq1^hJg%c zU=YyK+QMLAASSTFP4EE+kuL!7$TL|0 delta 428 zcmeC=e!<0c>ff$?3=9m`4Bi{L{xfoMG4L{I@i1sJ=uFmT(vs8TVbEs~WMtqd$S=+; z$;{8=VlZSdVrMYsVNhl;nOw{i#b(CCV9sDM`7)C_n-vd(HG|D2W?n`?TLwl3I|c@Z zb_R9^76t|e?a6X1TJ;+l7#Nrs>=_ssq!`#37#IW?_!$HlL>Pn^q#1-6R2f7Vv=~Gg z92giFv>>_|92uM#KtLPh4hBY$Nes>mf(%SxmH>kw12Y37gA0QW)IK`~Ca@fvmi9IV zO@w`1AklgTNd{I1DX;}%AOQw8xCLwst_*Grj0}tn?hH0?!$5{JFbHUAZDG*W+QPuI zgTY`MgDIM^3~~(o4Dw)8dB9E-fSSt4-~l(wn1PYO3gmuPt!)gJ=q4yLurR11nZOD+ J!4n*0UH}~#E0F*I diff --git a/target/classes/objects/ships/Turret.class b/target/classes/objects/ships/Turret.class index 8c3bf561d9af852e02345d9fa7c965b4f675ada4..acc9ff90cb22a7cc04d67bc36a7d457f4373a06b 100644 GIT binary patch delta 235 zcmbOyH%)Fs1Sccs)8I&hma!n9b zV-R4FU=U@HVUS`_XOL&mU{GVw+c&pUvGoOBfvk88{e%7z7xC8Dtnj7)%(#7+e@47{VB$7?K#G8A=&q7`hqa m7#1=lFf3