diff --git a/OGP1718-Worms/src/Worm.java b/OGP1718-Worms/src/Worm.java index 63a7eca..c471446 100644 --- a/OGP1718-Worms/src/Worm.java +++ b/OGP1718-Worms/src/Worm.java @@ -1,3 +1,5 @@ +import be.kuleuven.cs.som.annotate.*; + public class Worm { /** * a class with the specifications of the worm @@ -13,10 +15,14 @@ public class Worm { // region properties //=================================================================================== - // Location private Tuple location; + + + // jumping private Tuple oldLocation; + private double jumpForce; + private double jumpVelocity; /** * this variable contains the orientation of the worm @@ -361,8 +367,8 @@ public class Worm { throw new IllegalStateException(); this.oldLocation = this.location; - this.location = Tuple.create(location.item1 + jumpDistance(jumpVelocity()), location.item2); - + this.jumpVelocity = jumpVelocity(); + this.location = Tuple.create(location.item1 + jumpDistance(this.jumpVelocity), location.item2); this.points = 0; } @@ -372,12 +378,14 @@ public class Worm { public double jumpTime() { - double v = jumpVelocity(); - return jumpDistance(v) / (v * Math.cos(this.orientation)); + return jumpDistance(this.jumpVelocity) / (this.jumpVelocity * Math.cos(this.orientation)); } - public double jumpStep() { - return 0.0; + public Tuple jumpStep(double deltaTime) { + + + return Tuple.create(oldLocation.item1 + this.jumpVelocity * Math.cos(this.orientation) * deltaTime, + oldLocation.item2 + this.jumpVelocity * Math.sin(this.orientation) * deltaTime - (1/2) * G * Math.pow(deltaTime, 2)); } private double jumpDistance(double v) { return (Math.pow(v, 2) * Math.sin(2 * this.orientation)) / this.G;