From 6f5b7c83eee860504dae2a0233a9a66be5f1fc6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz>
Date: Fri, 14 Oct 2022 14:46:22 +0200
Subject: [PATCH] Fix movement equations

---
 src/main/java/lab/BulletAnimated.java | 11 ++++++-----
 src/main/java/lab/Dragon.java         |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java
index dd27903..c9d9fb4 100644
--- a/src/main/java/lab/BulletAnimated.java
+++ b/src/main/java/lab/BulletAnimated.java
@@ -4,9 +4,10 @@ import javafx.geometry.Point2D;
 import javafx.geometry.Rectangle2D;
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.image.Image;
+
 public class BulletAnimated  implements DrawableSimulable, Collisionable{
 
-	private static final double STRENGTH_CANNON_COEFICIENT = 4.;
+	private static final double STRENGTH_CANNON_COEFICIENT = 1.;
 	
 	private Point2D position;
 	private Point2D start;
@@ -57,7 +58,7 @@ public class BulletAnimated  implements DrawableSimulable, Collisionable{
 		}
 		if (accelerate && start.distance(position) < cannonLength) {
 			double cannonAngle = cannon.getAngle(); 
-			double strenghtOfCannon = cannon.getStrength() * STRENGTH_CANNON_COEFICIENT/100.;
+			double strenghtOfCannon = cannon.getStrength() * STRENGTH_CANNON_COEFICIENT;
 			speed = speed
 					.add(new Point2D(Math.cos(cannonAngle) * strenghtOfCannon, Math.sin(cannonAngle) * strenghtOfCannon)
 							.multiply(deltaT / mass));
@@ -67,11 +68,11 @@ public class BulletAnimated  implements DrawableSimulable, Collisionable{
 					-1. / 2 * crossSectionalArea * Constants.AIR_DENSITY * dragCoefficient * Math.pow(speed.getX(), 2),
 					-1. / 2 * crossSectionalArea * Constants.AIR_DENSITY * 0.47 * Math.pow(speed.getY(), 2));
 			Point2D acceleration = new Point2D(-airResistanceforce.getX() * mass,
-					(-Constants.GRAVITATIONAL_ACCELERATION/20 + airResistanceforce.getY()) * mass);
+					(-Constants.GRAVITATIONAL_ACCELERATION + airResistanceforce.getY()) * mass);
 			speed = speed.add(acceleration.multiply(deltaT));
 		}
 		if (!hitToGround) {
-			position = position.add(speed.multiply(deltaT*1000));
+			position = position.add(speed.multiply(deltaT*100));
 			if (!accelerate && position.getY() <= size / 2) {
 				hitToGround = true;
 				position = new Point2D(position.getX(), size / 2);
@@ -83,7 +84,7 @@ public class BulletAnimated  implements DrawableSimulable, Collisionable{
 	}
 
 	public Rectangle2D getBoundingBox() {
-		return new Rectangle2D(position.getX(), position.getY(), size, size);
+		return new Rectangle2D(position.getX() - size, position.getY(), size, size);
 	}
 	
 	public boolean overlaps(Dragon dragon) {
diff --git a/src/main/java/lab/Dragon.java b/src/main/java/lab/Dragon.java
index 987de59..035a553 100644
--- a/src/main/java/lab/Dragon.java
+++ b/src/main/java/lab/Dragon.java
@@ -37,7 +37,7 @@ public class Dragon implements DrawableSimulable, Collisionable{
 
 
 	public Rectangle2D getBoundingBox() {
-		return new Rectangle2D(position.getX(), position.getY(), size, size);
+		return new Rectangle2D(position.getX() - size, position.getY(), size, size);
 	}
 
 
-- 
GitLab