diff --git a/core/src/controller/Controller.java b/core/src/controller/Controller.java index 6cec0f7..947202f 100644 --- a/core/src/controller/Controller.java +++ b/core/src/controller/Controller.java @@ -47,7 +47,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ int levelAmount; SpriteBatch batch; Timer stepTimer; - Level level; + Level[] level; + int currentLevel; OrthographicCamera camera; Viewport viewport; @@ -73,31 +74,33 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ viewport.apply(); camera.position.set(GAME_WORLD_WIDTH/2, GAME_WORLD_HEIGHT/2, 0); - level = new Level(new Goal(500,200,150,50, 0.2f), new Projectile(0,0,0),200,200); + level = new Level[10]; + currentLevel = 0; + level[0] = new Level(new Goal(500,200,150,50, 0.2f), new Projectile(0,0,0),200,200); stepTimer = new Timer(); stepTimer.scheduleTask(new Timer.Task() { @Override public void run() { if(gs != null){ - if(level.getProjectile().getxPos() > Gdx.graphics.getWidth() || level.getProjectile().getxPos() < 0 || level.getProjectile().getyPos() < 0){ - gs.step(level); - level.reset(); + if(level[currentLevel].getProjectile().getxPos() > Gdx.graphics.getWidth() || level[currentLevel].getProjectile().getxPos() < 0 || level[currentLevel].getProjectile().getyPos() < 0){ + gs.step(level[currentLevel]); + level[currentLevel].reset(); gs.dispose(); stepTimer.stop(); gs = null; ws = new Winscreen(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, false); } else{ - level.step(); - gs.step(level); + level[currentLevel].step(); + gs.step(level[currentLevel]); for(Rectangle rect : gs.getGoalRects()){ if(Intersector.overlaps(gs.getProjectileCirc(), rect)){ if(rect.getHeight() == 1){ - level.horizontalCollision(); + level[currentLevel].horizontalCollision(); } else if(rect.getWidth() == 1){ - level.verticalCollision(); + level[currentLevel].verticalCollision(); } break; } @@ -126,7 +129,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(ts != null) ts.render(batch); else if(ls != null) ls.render(batch); else if(gs != null){ - gs.render(batch, level); + gs.render(batch, level[currentLevel]); if(gs.getWin()){ gs.dispose(); stepTimer.stop(); @@ -183,8 +186,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } } else if(gs != null){ - if(!level.released()){ - level.projectileReleased(); + if(!level[currentLevel].released()){ + level[currentLevel].projectileReleased(); } } else if(ws != null){