diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index e69b779..c6c4563 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -336,6 +336,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ isPaused = true; entityMovement.stop(); gs.end(); + GAME_WORLD_WIDTH = 1600; + GAME_WORLD_HEIGHT = 900; + camera = null; + viewport = null; + camera = new OrthographicCamera(); + camera.update(); + viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); + viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + viewport.apply(); + camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0); + camera.update(); + batch.setProjectionMatrix(camera.combined); gs = null; hc = null; es = new EndScreen(kills); @@ -930,7 +942,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ mm.cleanUp(); mm = null; GAME_WORLD_WIDTH = 700; - GAME_WORLD_HEIGHT = 380; + GAME_WORLD_HEIGHT = 394; camera = null; viewport = null; camera = new OrthographicCamera(); @@ -1013,80 +1025,82 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } if(gs != null){ - if(!d.getPlayer().isToDelete()){ - switch(gs.click(screenX, screenY)){ // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown - case 0: + if(!d.getPlayer().isToDelete()) { + ArrayList clicked = gs.click(screenX,screenY); + for (Integer i : clicked) { + switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown + case 0: d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed()); - break; - case 1: + break; + case 1: d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed()); - break; - case 2: + break; + case 2: d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed()); - break; - case 3: + break; + case 3: d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed()); - break; - case 4: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); - break; + break; + case 4: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } } } - } - break; - - case 5: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); - break; + break; + + case 5: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } } } - } - break; - case 6: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); - break; + break; + case 6: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } } } - } - break; - case 7: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); - break; + break; + case 7: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } } } - } - break; + break; + } } } - } return true; } @@ -1098,7 +1112,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(ps != null){ return ps.click(x,y); } - if(mm != null && mm.getHidden() == false){ + if(mm != null && !mm.getHidden()){ return mm.click(x, y); } if(ss != null){ @@ -1107,9 +1121,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(cs != null){ return cs.click(x, y); } - if(gs != null && isPaused == true){ - return gs.click(x,y); - } return -1; } @@ -1117,9 +1128,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean touchUp(int screenX, int screenY, int i2, int i3) { if(gs != null){ - if(gs.click(screenX,screenY) == 0 || gs.click(screenX,screenY) == 1 || gs.click(screenX,screenY) == 2 || gs.click(screenX,screenY) == 3){ - d.getPlayer().setMovementX(0); - d.getPlayer().setMovementY(0); + if(gs.click(screenX,screenY).contains(0) || gs.click(screenX,screenY).contains(1)|| gs.click(screenX,screenY).contains(2)|| gs.click(screenX,screenY).contains(3)){ d.getPlayer().setMovementX(0); d.getPlayer().setMovementY(0); } @@ -1129,90 +1138,87 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean touchDragged(int screenX, int screenY, int i2) { - //d.getPlayer().setMovementX(0); - //d.getPlayer().setMovementY(0); - //d.getPlayer().setMovementX(0); - //d.getPlayer().setMovementY(0); - switch(click(screenX, screenY)){ // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown - case 0: - if(!d.getPlayer().isToDelete()){ - d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed()); - } - break; - case 1: - if(!d.getPlayer().isToDelete()){ - d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed()); - } - break; - case 2: - if(!d.getPlayer().isToDelete()){ - d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed()); - } - break; - case 3: - if(!d.getPlayer().isToDelete()){ - d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed()); - } - break; - case 4: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); + d.getPlayer().setMovementX(0); + d.getPlayer().setMovementY(0); + if(gs != null){ + if(!d.getPlayer().isToDelete()) { + ArrayList clicked = gs.click(screenX,screenY); + for (Integer i : clicked) { + switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown + case 0: + d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed()); + break; + case 1: + d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed()); + break; + case 2: + d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed()); + break; + case 3: + d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed()); + break; + case 4: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } break; - } - } - } - break; - case 5: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); + case 5: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } break; - } - } - } - break; - case 6: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); + case 6: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } break; - } - } - } - break; - case 7: - if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ - Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); - - for(int k = 5; k < d.getCurrentEntities().length; k++){ - if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ - d.getCurrentEntities()[k] = lol; - gs.generateNewEntitySprite(lol, k); - gs.player.startSecondaryAttack(); + case 7: + if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); + + for (int k = 5; k < d.getCurrentEntities().length; k++) { + if (d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1) { + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } break; - } } } - break; + } } - return false; + return true; } @Override @@ -1253,7 +1259,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } public void resume(){ GAME_WORLD_WIDTH = 700; - GAME_WORLD_HEIGHT = 380; + GAME_WORLD_HEIGHT = 394; camera = null; viewport = null; camera = new OrthographicCamera(); diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index 4e3bc7e..76811c5 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -13,6 +13,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapRenderer; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; +import com.badlogic.gdx.math.Circle; import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Timer; @@ -289,16 +290,16 @@ public class GameScreen { batch.end(); // BUTTON HITBOXES - /* + ShapeRenderer lol = new ShapeRenderer(); lol.setProjectionMatrix(camera.combined); lol.begin(ShapeRenderer.ShapeType.Filled); for(Button button : controls){ lol.rect(button.getxPos(), button.getyPos(), button.getWidth(), button.getHeight()); } - lol.circle(mouseX,mouseY,5); + lol.circle(mouseX,mouseY,15); lol.end(); - */ + } public void generateEntitySprites(Entity[] e){ @@ -548,19 +549,18 @@ public class GameScreen { } } } - public int click(int x, int y){ + public ArrayList click(int x, int y){ x = (int)(((float)x) / (float)Gdx.graphics.getWidth() * 700f) -170; y = 380- (int)(((float)y) / (float)Gdx.graphics.getHeight() * 380f)+ 25; mouseX = x; mouseY = y; - System.out.println("X: "+x+"| Y: "+y); - Rectangle mouse = new Rectangle(x,y,1,1); + ArrayList clicks = new ArrayList(); + Circle mouse = new Circle(x,y,20); for(Button button : controls){ if(Intersector.overlaps(mouse, button.getSprite().getBoundingRectangle())){ - System.out.println(button.getId()); - return button.getId(); + clicks.add(button.getId()); } } - return -1; + return clicks; } }