diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java index 3770cb31bbd7b43bac3ae33b11482bd9ae3fa948..5a18879c3d47203b916b2800258402d6401375bb 100644 --- a/src/main/java/lab/BulletAnimated.java +++ b/src/main/java/lab/BulletAnimated.java @@ -13,7 +13,7 @@ public class BulletAnimated implements DrawableSimulable, Collisionable{ private Point2D initialSpeed; private double size; private double mass = 2; - private double strenghtOfCannon = 50; + private double strenghtOfCannon = 100; private double cannonLength = 100; private boolean accelerate = true; private boolean hitToGround = false; @@ -53,18 +53,18 @@ public class BulletAnimated implements DrawableSimulable, Collisionable{ double cannonAngle = cannon.getAngle(); speed = speed .add(new Point2D(Math.cos(cannonAngle) * strenghtOfCannon, Math.sin(cannonAngle) * strenghtOfCannon) - .multiply(1 / mass * deltaT)); + .multiply(deltaT / mass)); } else if (!hitToGround) { accelerate = false; Point2D airResistanceforce = new Point2D( -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 + airResistanceforce.getY() * mass); + (-Constants.GRAVITATIONAL_ACCELERATION + airResistanceforce.getY()) * mass); speed = speed.add(acceleration.multiply(deltaT)); } if (!hitToGround) { - position = position.add(speed); + position = position.add(speed.multiply(deltaT*100)); if (!accelerate && position.getY() <= size / 2) { hitToGround = true; position = new Point2D(position.getX(), size / 2); @@ -75,7 +75,7 @@ public class BulletAnimated implements DrawableSimulable, Collisionable{ } public Rectangle2D getBoundingBox() { - return new Rectangle2D(position.getX(), position.getY() - size, size, size); + return new Rectangle2D(position.getX(), position.getY(), size, size); } public boolean overlaps(Dragon dragon) {