diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java index dd27903d2b2011bef7c09c41f5b9ceda9000ce4b..c9d9fb460ec1e38baca19121f6c901ece394ce82 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 987de596cda5ceedf27c903d421432003e5acfea..035a553fe527bf1034cc11abfae30955a5a0eb51 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); }