diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java index e95228819f13b46e9df20fd18713b235b510f0e2..148b2385fba57c7bbec6f4b56285ca7461ece9ea 100644 --- a/src/main/java/lab/BulletAnimated.java +++ b/src/main/java/lab/BulletAnimated.java @@ -13,7 +13,7 @@ public class BulletAnimated { 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,27 +53,25 @@ public class BulletAnimated { 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); } } else { reload(); - } - - + } } public Rectangle2D getBoundingBox() {