diff --git a/core/src/com/throwgame/main/ThrowMath.java b/core/src/com/throwgame/main/ThrowMath.java index 9589f21..e119241 100644 --- a/core/src/com/throwgame/main/ThrowMath.java +++ b/core/src/com/throwgame/main/ThrowMath.java @@ -60,9 +60,9 @@ public class ThrowMath { public Vector2 test(Projectile projectile, double g){ Vector2 lol = new Vector2(); - lol.x = (int) (projectile.getxPos() + projectile.getvX()); + lol.x = (float) (projectile.getxPos() + projectile.getvX()); projectile.setvY(projectile.getvY() - g); - lol.y = (int) (projectile.getyPos() + projectile.getvY()); + lol.y = (float) (projectile.getyPos() + projectile.getvY()); return lol; } diff --git a/core/src/model/Level.java b/core/src/model/Level.java index 585c6b4..e468ad8 100644 --- a/core/src/model/Level.java +++ b/core/src/model/Level.java @@ -8,6 +8,8 @@ package model; import com.badlogic.gdx.math.Vector2; import com.throwgame.main.ThrowMath; +import java.util.ArrayList; + /** * * @author Jan @@ -25,6 +27,9 @@ public class Level { private double angleSpeed; private boolean isReleased; + private int traceIndex; + public Vector2[] traces; + public Level(Goal goal, Projectile projectile, int xPosPivot, int yPosPivot){ this.goal = goal; this.projectile = projectile; @@ -37,6 +42,12 @@ public class Level { this.yPosPivot = yPosPivot; this.angle = 0; this.angleSpeed = 0; + + traceIndex = 0; + traces = new Vector2[50]; + for(int i = 0; i < traces.length; i++){ + traces[i] = new Vector2(-10, -10); + } } public void projectileReleased(){ @@ -44,9 +55,9 @@ public class Level { double v0 = angleSpeed * RADIUS; double tempAngle = angle - Math.PI / 2; double vX = v0 * Math.sin(tempAngle); - this.math.initThrow(Math.PI / 2 + angle, G, v0, projectile.getyPos(), projectile.getxPos(), vX); - //projectile.setvX(v0 * Math.sin(tempAngle)); - //projectile.setvY(v0 * Math.cos(tempAngle)); + //this.math.initThrow(/*Math.PI / 2 + angle*/tempAngle, G, v0, projectile.getyPos(), projectile.getxPos(), vX); + projectile.setvX(v0 * Math.sin(tempAngle)); + projectile.setvY(v0 * Math.cos(tempAngle)); } public void step(){ @@ -70,14 +81,25 @@ public class Level { } private void stepAir(){ - Vector2 newPos = math.calculateY(projectile.getxPos()); + /*Vector2 newPos = math.calculateY(projectile.getxPos()); projectile.setxPos(newPos.x); projectile.setyPos(newPos.y); - /*Vector2 lol = math.test(projectile, G); - projectile.setxPos((int) lol.x); - projectile.setyPos((int) lol.y); - System.out.println(projectile.getxPos() + " " + projectile.getyPos()); */ + + Vector2 lol = math.test(projectile, G); + projectile.setxPos(lol.x); + projectile.setyPos(lol.y); + + changeTracePos(lol); + } + + public void changeTracePos(Vector2 newPos){ + if(traceIndex >= traces.length){ + traceIndex = 0; + } + traces[traceIndex] = newPos; + + traceIndex++; } public void reset(){ diff --git a/core/src/view/Gamescreen.java b/core/src/view/Gamescreen.java index 8437d75..4a8f902 100644 --- a/core/src/view/Gamescreen.java +++ b/core/src/view/Gamescreen.java @@ -8,6 +8,7 @@ package view; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.badlogic.gdx.math.Vector2; import model.Goal; import model.Level; @@ -54,6 +55,16 @@ public class Gamescreen{ shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); shapeRenderer.setColor(Color.BLACK); + + if(level.released()) { + for (Vector2 trace : level.traces) { + shapeRenderer.rect(trace.x, trace.y, 3, 3); + } + } + else{ + shapeRenderer.rectLine((float) level.getPivotX(), (float) level.getPivotY(), (float) level.getProjectile().getxPos(), (float) level.getProjectile().getyPos(), 3); + } + shapeRenderer.rect(g.getxPos(), g.getyPos(), 0.2f * g.getSizeX(), g.getSizeY()); shapeRenderer.rect(g.getxPos() + 0.2f * g.getSizeX(), g.getyPos(), 0.6f * g.getSizeX(),0.2f * g.getSizeY()); shapeRenderer.rect(g.getxPos() + 0.2f * g.getSizeX() + 0.6f * g.getSizeX(), g.getyPos(), 0.2f * g.getSizeX(),g.getSizeY());