diff --git a/src/Acceleration.java b/src/Acceleration.java index 3bccc68..37babc8 100644 --- a/src/Acceleration.java +++ b/src/Acceleration.java @@ -1,25 +1,30 @@ -import java.util.*; - public class Acceleration { private double mass; - private Map.Entry force; + private Pair force; private Velocity velocity; private Onground onground; - private Map.Entry acceleration; + private Pair acceleration; + public void updateMass(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))); + acceleration = (this.onground.getOnground() ? new Pair<>((force.getX() / mass), 0.0) + : new Pair<>((force.getX() / mass), (force.getY() / mass))); velocity.updateAcceleration(acceleration); } - public void updateForce(Map.Entry force) { + + public void updateForce(Pair 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))); + acceleration = (this.onground.getOnground() ? new Pair<>((force.getX() / mass), 0.0) + : new Pair<>((force.getX() / mass), (force.getY() / mass))); velocity.updateAcceleration(acceleration); } + public Acceleration(Velocity velocity, Onground onground) { + this.velocity = velocity; this.onground = onground; } - public Map.Entry getAcceleration() { + + public Pair getAcceleration() { return acceleration; } } \ No newline at end of file diff --git a/src/Clear.java b/src/Clear.java index 5936436..7b3d158 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().getY() > 100.0) ? true : false); } } \ No newline at end of file diff --git a/src/Force.java b/src/Force.java index e379404..a2aa9b3 100644 --- a/src/Force.java +++ b/src/Force.java @@ -1,16 +1,17 @@ -import java.util.*; - public class Force { private Acceleration acceleration; - private Map.Entry force; + private Pair force; + public Force(Acceleration acceleration) { this.acceleration = acceleration; } + public void gravity(double y) { - this.force = new AbstractMap.SimpleEntry<>(0.0, y); + this.force.setX(y); acceleration.updateForce(force); } - public Map.Entry getForce() { + + public Pair getForce() { return force; } } \ No newline at end of file diff --git a/src/Gameover.java b/src/Gameover.java index e0bef2f..340b32d 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().getY() < -(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..70f05c7 100644 --- a/src/JumpGame.java +++ b/src/JumpGame.java @@ -1,60 +1,73 @@ -import java.util.*; - public class JumpGame { private Time time = new Time(); 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() { + + public Pair getAcceleration() { return acceleration.getAcceleration(); } - public Map.Entry getMove() { + + public Pair 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() { + + public Pair getForce() { return force.getForce(); } - public Map.Entry getVelocity() { + + public Pair getVelocity() { return velocity.getVelocity(); } - public Map.Entry getPosition() { + + public Pair 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..1a8eb69 100644 --- a/src/Mass.java +++ b/src/Mass.java @@ -3,13 +3,16 @@ 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); } + public double getMass() { return mass; } diff --git a/src/Move.java b/src/Move.java index ab8511b..cbbcbc6 100644 --- a/src/Move.java +++ b/src/Move.java @@ -1,19 +1,21 @@ -import java.util.*; - public class Move { private Velocity velocity; - private Map.Entry move; + private Pair move; + public Move(Velocity velocity) { this.velocity = velocity; } + public void moveY(double y) { - this.move = new AbstractMap.SimpleEntry<>(this.move.getKey(), y); + this.move.setY(y); velocity.updateMove(move); } + public void moveX(double x) { - this.move = new AbstractMap.SimpleEntry<>(x, this.move.getValue()); + this.move.setX(x); } - public Map.Entry getMove() { + + public Pair getMove() { return move; } } \ No newline at end of file diff --git a/src/Onground.java b/src/Onground.java index 694d757..6bd6562 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().getY() <= 0.0)); } } \ No newline at end of file diff --git a/src/Pair.java b/src/Pair.java new file mode 100644 index 0000000..95f6959 --- /dev/null +++ b/src/Pair.java @@ -0,0 +1,26 @@ +// 2 dim +public class Pair { + private Type x; + private Type y; + + public Pair(Type x, Type y) { + this.x = x; + this.y = y; + } + + public void setX(Type x) { + this.x = x; + } + + public void setY(Type y) { + this.y = y; + } + + public Type getX() { + return (this.x); + } + + public Type getY() { + return (this.y); + } +} diff --git a/src/Position.java b/src/Position.java index 0ecaa4f..f185b73 100644 --- a/src/Position.java +++ b/src/Position.java @@ -1,18 +1,25 @@ -import java.util.*; - public class Position { - private Map.Entry velocity; + private Pair velocity; private boolean ground; - private Map.Entry position; - public void updateVelocity(Map.Entry velocity) { + private Pair position; + + public void updateVelocity(Pair 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())))); + position = (((ground == true) && ((this.position.getY() + (0.01 * velocity.getY())) < 0.0)) + ? new Pair<>(this.position.getX() + (0.01 * velocity.getX()), 0.0) + : new Pair<>(this.position.getX() + (0.01 * velocity.getX()), + (this.position.getY() + (0.01 * velocity.getY())))); } + 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())))); + position = (((ground == true) && ((this.position.getY() + (0.01 * velocity.getY())) < 0.0)) + ? new Pair<>(this.position.getX() + (0.01 * velocity.getX()), 0.0) + : new Pair<>(this.position.getX() + (0.01 * velocity.getX()), + this.position.getY() + (0.01 * velocity.getY()))); } - public Map.Entry getPosition() { + + public Pair getPosition() { return position; } } \ No newline at end of file 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..28f5d90 100644 --- a/src/Velocity.java +++ b/src/Velocity.java @@ -1,25 +1,31 @@ -import java.util.*; - public class Velocity { - private Map.Entry acceleration; - private Map.Entry move; + private Pair acceleration; + private Pair move; private Position position; private Onground onground; - private Map.Entry velocity; - public void updateAcceleration(Map.Entry acceleration) { + private Pair velocity; + + public void updateAcceleration(Pair 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())))); + velocity = ((this.onground.getOnground() && (this.velocity.getY() < 0.0)) + ? new Pair<>(this.velocity.getX() + (0.01 * acceleration.getX()), 0.0) + : new Pair<>(this.velocity.getX() + (0.01 * acceleration.getX()), + (this.velocity.getY() + (0.01 * acceleration.getY())))); position.updateVelocity(velocity); } - public void updateMove(Map.Entry move) { + + public void updateMove(Pair move) { this.move = move; - velocity = ((this.onground.getOnground()&&(move.getValue()>=0.0)) ? move : this.velocity); + velocity = ((this.onground.getOnground() && (move.getY() >= 0.0)) ? move : this.velocity); position.updateVelocity(velocity); } + public Velocity(Position position, Onground onground) { + this.position = position; this.onground = onground; } - public Map.Entry getVelocity() { + + public Pair getVelocity() { return velocity; } } \ No newline at end of file