diff --git a/src/Acceleration.java b/src/Acceleration.java index 3bccc68..7201f71 100644 --- a/src/Acceleration.java +++ b/src/Acceleration.java @@ -6,19 +6,30 @@ private Velocity velocity; private Onground onground; private Map.Entry acceleration; - public void updateMass(double mass) { + + public void setMass(double mass) { this.mass = mass; - acceleration = (this.onground.getOnground() ? new AbstractMap.SimpleEntry<>((force.getKey()/mass), 0.0) : new AbstractMap.SimpleEntry<>((force.getKey()/mass), (force.getValue()/mass))); - velocity.updateAcceleration(acceleration); } - public void updateForce(Map.Entry force) { + + public void setForce(Map.Entry force) { this.force = force; - acceleration = (this.onground.getOnground() ? new AbstractMap.SimpleEntry<>((force.getKey()/mass), 0.0) : new AbstractMap.SimpleEntry<>((force.getKey()/mass), (force.getValue()/mass))); - velocity.updateAcceleration(acceleration); } + + public void updateAcceleration() { + this.acceleration = (this.onground.getOnground() + ? new AbstractMap.SimpleEntry<>((this.force.getKey() / this.mass), 0.0) + : new AbstractMap.SimpleEntry<>((this.force.getKey() / this.mass), + (this.force.getValue() / this.mass))); + + velocity.setAcceleration(acceleration); + velocity.updateAcceleration(); + } + public Acceleration(Velocity velocity, Onground onground) { + this.velocity = velocity; this.onground = onground; } + public Map.Entry getAcceleration() { return acceleration; } diff --git a/src/Clear.java b/src/Clear.java index 5936436..7344d9d 100644 --- a/src/Clear.java +++ b/src/Clear.java @@ -2,10 +2,12 @@ public class Clear { private Position position; + public Clear(Position position) { this.position = position; } + public boolean getClear() { - return ((this.position.getPosition().getKey()>100.0) ? true : false); + return ((this.position.getPosition().getKey() > 100.0) ? true : false); } } \ No newline at end of file diff --git a/src/Force.java b/src/Force.java index e379404..ffd36cf 100644 --- a/src/Force.java +++ b/src/Force.java @@ -3,13 +3,17 @@ public class Force { private Acceleration acceleration; private Map.Entry force; + public Force(Acceleration acceleration) { this.acceleration = acceleration; } + public void gravity(double y) { this.force = new AbstractMap.SimpleEntry<>(0.0, y); - acceleration.updateForce(force); + acceleration.setForce(this.force); + acceleration.updateAcceleration(); } + public Map.Entry getForce() { return force; } diff --git a/src/Gameover.java b/src/Gameover.java index e0bef2f..97d4304 100644 --- a/src/Gameover.java +++ b/src/Gameover.java @@ -2,10 +2,12 @@ public class Gameover { private Position position; + public Gameover(Position position) { this.position = position; } + public boolean getGameover() { - return ((this.position.getPosition().getValue()<-(1.0)) ? true : false); + return ((this.position.getPosition().getValue() < -(1.0)) ? true : false); } } \ No newline at end of file diff --git a/src/Ground.java b/src/Ground.java index 6a1763e..19876c3 100644 --- a/src/Ground.java +++ b/src/Ground.java @@ -3,9 +3,11 @@ public class Ground { private Position position; private boolean ground; + public Ground(Position position) { this.position = position; } + public boolean getGround() { return ground; } diff --git a/src/JumpGame.java b/src/JumpGame.java index 9aca478..2024353 100644 --- a/src/JumpGame.java +++ b/src/JumpGame.java @@ -5,56 +5,71 @@ private Position position = new Position(); private Gameover gameover = new Gameover(position); private Ground ground = new Ground(position); - private Onground onground = new Onground(ground,position); - private Velocity velocity = new Velocity(position,onground); + private Onground onground = new Onground(ground, position); + private Velocity velocity = new Velocity(position, onground); private Clear clear = new Clear(position); private Move move = new Move(velocity); - private Acceleration acceleration = new Acceleration(velocity,onground); + private Acceleration acceleration = new Acceleration(velocity, onground); private Force force = new Force(acceleration); private Mass mass = new Mass(acceleration); + public void gravity(double y) { this.force.gravity(y); this.time.gravity(y); } + public void moveY(double y) { this.move.moveY(y); } + public void moveX(double x) { this.move.moveX(x); } + public void setMass(double x) { this.mass.setMass(x); } + public Map.Entry getAcceleration() { return acceleration.getAcceleration(); } + public Map.Entry getMove() { return move.getMove(); } + public double getMass() { return mass.getMass(); } + public boolean getClear() { return clear.getClear(); } + public boolean getGround() { return ground.getGround(); } + public Map.Entry getForce() { return force.getForce(); } + public Map.Entry getVelocity() { return velocity.getVelocity(); } + public Map.Entry getPosition() { return position.getPosition(); } + public boolean getOnground() { return onground.getOnground(); } + public double getTime() { return time.getTime(); } + public boolean getGameover() { return gameover.getGameover(); } diff --git a/src/Mass.java b/src/Mass.java index c381628..2d90297 100644 --- a/src/Mass.java +++ b/src/Mass.java @@ -3,13 +3,17 @@ public class Mass { private Acceleration acceleration; private double mass; + public Mass(Acceleration acceleration) { this.acceleration = acceleration; } + public void setMass(double x) { this.mass = x; - acceleration.updateMass(mass); + acceleration.setMass(x); + acceleration.updateAcceleration(); } + public double getMass() { return mass; } diff --git a/src/Move.java b/src/Move.java index ab8511b..a3e69a0 100644 --- a/src/Move.java +++ b/src/Move.java @@ -3,16 +3,21 @@ public class Move { private Velocity velocity; private Map.Entry move; + public Move(Velocity velocity) { this.velocity = velocity; } + public void moveY(double y) { this.move = new AbstractMap.SimpleEntry<>(this.move.getKey(), y); - velocity.updateMove(move); + velocity.setMove(move); + velocity.updateMove(); } + public void moveX(double x) { this.move = new AbstractMap.SimpleEntry<>(x, this.move.getValue()); } + public Map.Entry getMove() { return move; } diff --git a/src/Onground.java b/src/Onground.java index 694d757..53f9c62 100644 --- a/src/Onground.java +++ b/src/Onground.java @@ -3,11 +3,13 @@ public class Onground { private Ground ground; private Position position; + public Onground(Ground ground, Position position) { this.ground = ground; this.position = position; } + public boolean getOnground() { - return ((this.ground.getGround()==true)&&(this.position.getPosition().getValue()<=0.0)); + return ((this.ground.getGround() == true) && (this.position.getPosition().getValue() <= 0.0)); } } \ No newline at end of file diff --git a/src/Position.java b/src/Position.java index 0ecaa4f..0646afd 100644 --- a/src/Position.java +++ b/src/Position.java @@ -2,16 +2,24 @@ public class Position { private Map.Entry velocity; - private boolean ground; + private boolean isGround; private Map.Entry position; - public void updateVelocity(Map.Entry velocity) { + + public void setVelocity(Map.Entry velocity) { this.velocity = velocity; - position = (((ground==true)&&((this.position.getValue()+(0.01*velocity.getValue()))<0.0)) ? new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), 0.0) : new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), (this.position.getValue()+(0.01*velocity.getValue())))); } - public void updateGround(boolean ground) { - this.ground = ground; - position = (((ground==true)&&((this.position.getValue()+(0.01*velocity.getValue()))<0.0)) ? new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), 0.0) : new AbstractMap.SimpleEntry<>((this.position.getKey()+(0.01*velocity.getKey())), (this.position.getValue()+(0.01*velocity.getValue())))); + + public void setGround(boolean isGround) { + this.isGround = isGround; } + + public void updatePosition() { + position = (((isGround == true) && ((this.position.getValue() + (0.01 * this.velocity.getValue())) < 0.0)) + ? new AbstractMap.SimpleEntry<>((this.position.getKey() + (0.01 * this.velocity.getKey())), 0.0) + : new AbstractMap.SimpleEntry<>((this.position.getKey() + (0.01 * this.velocity.getKey())), + (this.position.getValue() + (0.01 * this.velocity.getValue())))); + } + public Map.Entry getPosition() { return position; } diff --git a/src/Time.java b/src/Time.java index cf5540a..0a7dc4d 100644 --- a/src/Time.java +++ b/src/Time.java @@ -2,9 +2,11 @@ public class Time { private double time; + public void gravity(double y) { - this.time = (this.time+0.01); + this.time = (this.time + 0.01); } + public double getTime() { return time; } diff --git a/src/Velocity.java b/src/Velocity.java index 4f20c7b..0c3be49 100644 --- a/src/Velocity.java +++ b/src/Velocity.java @@ -6,19 +6,36 @@ private Position position; private Onground onground; private Map.Entry velocity; - public void updateAcceleration(Map.Entry acceleration) { + + public void setAcceleration(Map.Entry acceleration) { this.acceleration = acceleration; - velocity = ((this.onground.getOnground()&&(this.velocity.getValue()<0.0)) ? new AbstractMap.SimpleEntry<>((this.velocity.getKey()+(0.01*acceleration.getKey())), 0.0) : new AbstractMap.SimpleEntry<>((this.velocity.getKey()+(0.01*acceleration.getKey())), (this.velocity.getValue()+(0.01*acceleration.getValue())))); - position.updateVelocity(velocity); } - public void updateMove(Map.Entry move) { + + public void setMove(Map.Entry move) { this.move = move; - velocity = ((this.onground.getOnground()&&(move.getValue()>=0.0)) ? move : this.velocity); - position.updateVelocity(velocity); } + + public void updateAcceleration() { + velocity = ((this.onground.getOnground() && (this.velocity.getValue() < 0.0)) + ? new AbstractMap.SimpleEntry<>((this.velocity.getKey() + (0.01 * acceleration.getKey())), 0.0) + : new AbstractMap.SimpleEntry<>((this.velocity.getKey() + (0.01 * acceleration.getKey())), + (this.velocity.getValue() + (0.01 * acceleration.getValue())))); + + position.setVelocity(velocity); + position.updatePosition(); + } + + public void updateMove() { + velocity = ((this.onground.getOnground() && (move.getValue() >= 0.0)) ? move : this.velocity); + + position.setVelocity(velocity); + position.updatePosition(); + } + public Velocity(Position position, Onground onground) { this.onground = onground; } + public Map.Entry getVelocity() { return velocity; }