diff --git a/core/assets/icon.png b/core/assets/icon.png new file mode 100644 index 0000000..cf08d70 Binary files /dev/null and b/core/assets/icon.png differ diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 9076530..f4b703a 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -138,25 +138,34 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ System.out.println(objects.getCount()); float x = d.getPlayer().getxPos(); - float y = d.getPlayer().getyPos(); + d.getPlayer().updateX(); - d.getPlayer().update(); + m.setPlayerSpriteX(d.getPlayer().getxPos()); + for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){ + Rectangle rectangle = rectangleObject.getRectangle(); + + if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){ + + d.getPlayer().setxPos(x); + + System.out.println("Es laedt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!"); + } + } + + float y = d.getPlayer().getyPos(); + d.getPlayer().updateY(); m.setPlayerSpriteX(d.getPlayer().getxPos()); m.setPlayerSpriteY(d.getPlayer().getyPos()); - System.out.println("Temp: " + x + " " + y); - System.out.println("Player: " + d.getPlayer().getxPos() + " " + d.getPlayer().getyPos()); - for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){ Rectangle rectangle = rectangleObject.getRectangle(); if(Intersector.overlaps(rectangle, m.getPlayer().getBoundingRectangle())){ - d.getPlayer().setxPos(x); d.getPlayer().setyPos(y); - System.out.println("Es lädt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!"); + System.out.println("Es laedt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!"); } } } diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 55036b8..5d9884f 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -41,6 +41,12 @@ public abstract class Entity { xPos += movementX; yPos += movementY; } + public void updateX(){ + xPos += movementX; + } + public void updateY(){ + yPos += movementY; + } public void downgrade(){ xPos -= movementX; yPos -= movementY; diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 48703d0..a3e6da4 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -59,38 +59,78 @@ public class MapGenerator { int tempX = 7; int tempY = 5; + int mapDimensionX = tempX + 2; + int mapDimensionY = tempY + 2; + // Raum wird generiertf TiledMap tempRoom = generateRoom(room, tempX, tempY); // Wenn es Fehler gibt, dann wohl hier: Viel Spaß beim Suchen! Danke! - TiledMapTileLayer temp = (TiledMapTileLayer) tempRoom.getLayers().get(2); + MapLayer collisionLayer = tempRoom.getLayers().get(0); + TiledMapTileLayer staticLayer = (TiledMapTileLayer) tempRoom.getLayers().get(2); + + RectangleMapObject bottom = (RectangleMapObject) collisionLayer.getObjects().get(0); + RectangleMapObject left = (RectangleMapObject) collisionLayer.getObjects().get(1); + RectangleMapObject top = (RectangleMapObject) collisionLayer.getObjects().get(2); + RectangleMapObject right = (RectangleMapObject) collisionLayer.getObjects().get(3); // Ausgang oben if(y < l.getRooms()[0].length - 1 && l.getRooms()[x][y + 1] != null){ // X: Exakte Mitte der Gesamtlänge, Y: Gesamtlänge - temp.getCell((tempX / 2) + 1, tempY + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //oben + staticLayer.getCell((tempX / 2) + 1, tempY + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //oben + collisionLayer.getObjects().remove(top); + + RectangleMapObject tempLeft = new RectangleMapObject(0, mapDimensionY*48 - 48, (mapDimensionX / 2) * 48, 48); + RectangleMapObject tempRight = new RectangleMapObject(((mapDimensionX / 2) + 2) * 48, mapDimensionY*48 - 48, mapDimensionX*48, 48); + + collisionLayer.getObjects().add(tempLeft); + collisionLayer.getObjects().add(tempRight); } // Ausgang rechts if(x < l.getRooms().length - 1 && l.getRooms()[x + 1][y] != null){ // X: Gesamtlänge, Y: Exakte Mitte der Gesamtlänge - temp.getCell(tempX + 1, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //rechts + staticLayer.getCell(tempX + 1, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //rechts + + collisionLayer.getObjects().remove(right); + + RectangleMapObject tempTop = new RectangleMapObject(mapDimensionX*48 - 48, ((mapDimensionY / 2) + 2) * 48, 48, (mapDimensionY / 2) * 48); + RectangleMapObject tempBottom = new RectangleMapObject(mapDimensionX*48 - 48, 0, 48, (mapDimensionY / 2) * 48); + + collisionLayer.getObjects().add(tempTop); + collisionLayer.getObjects().add(tempBottom); } // Ausgang unten if(y > 0 && l.getRooms()[x][y - 1] != null){ // X: Exakte Mitte der Gesamtlänge, Y: 0 - temp.getCell((tempX / 2) + 1, 0).setTile(new StaticTiledMapTile(splitTiles[0][3])); //unten + staticLayer.getCell((tempX / 2) + 1, 0).setTile(new StaticTiledMapTile(splitTiles[0][3])); //unten + + collisionLayer.getObjects().remove(bottom); + + RectangleMapObject tempLeft = new RectangleMapObject(0, 0, (mapDimensionX / 2) * 48, 48); + RectangleMapObject tempRight = new RectangleMapObject(((mapDimensionX / 2) + 2) * 48, 0, mapDimensionX*48, 48); + + collisionLayer.getObjects().add(tempLeft); + collisionLayer.getObjects().add(tempRight); } // Ausgang links if(x > 0 && l.getRooms()[x - 1][y] != null){ // X: 0, Y: Exakte Mitte der Gesamtlänge - temp.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //links + staticLayer.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //links + + collisionLayer.getObjects().remove(left); + + RectangleMapObject tempTop = new RectangleMapObject(0, ((mapDimensionY / 2) + 2) * 48, 48, (mapDimensionY / 2) * 48); + RectangleMapObject tempBottom = new RectangleMapObject(0, 0, 48, (mapDimensionY / 2) * 48); + + collisionLayer.getObjects().add(tempTop); + collisionLayer.getObjects().add(tempBottom); } tempLevel[x][y] = tempRoom; @@ -120,6 +160,20 @@ public class MapGenerator { TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); TiledMapTileLayer staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); + RectangleMapObject bottom = new RectangleMapObject(0, 0, mapDimensionX*48, 48); + collisionLayer.getObjects().add(bottom); + + RectangleMapObject left = new RectangleMapObject(0, 0, 48, mapDimensionY*48); + collisionLayer.getObjects().add(left); + + RectangleMapObject top = new RectangleMapObject(0, mapDimensionY*48 - 48, mapDimensionX*48, 48); + collisionLayer.getObjects().add(top); + + RectangleMapObject right = new RectangleMapObject(mapDimensionX*48 - 48, 0, 48, mapDimensionY*48); + collisionLayer.getObjects().add(right); + + collisionLayer.setVisible(false); + // Schleife läuft über jedes Teil des Raumes und generiert ein Tile aus dem tileset for(int x = 0; x < mapDimensionX + 1; x++){ for(int y = 0; y < mapDimensionY + 1; y++){ @@ -138,20 +192,6 @@ public class MapGenerator { } } - RectangleMapObject bottom = new RectangleMapObject(0, 0, mapDimensionX*48, 48); - collisionLayer.getObjects().add(bottom); - - RectangleMapObject left = new RectangleMapObject(0, 0, 48, mapDimensionY*48); - collisionLayer.getObjects().add(left); - - RectangleMapObject top = new RectangleMapObject(0, mapDimensionY*48 - 48, mapDimensionX*48, 48); - collisionLayer.getObjects().add(top); - - RectangleMapObject right = new RectangleMapObject(mapDimensionX*48 - 48, 0, 48, mapDimensionY*48); - collisionLayer.getObjects().add(right); - - collisionLayer.setVisible(false); - layers.add(collisionLayer); layers.add(dynamicLayer); layers.add(staticLayer); diff --git a/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java b/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java index 1afbf38..7efdcfc 100644 --- a/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java +++ b/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java @@ -1,5 +1,6 @@ package com.dungeoncrawler.desktop; +import com.badlogic.gdx.Files; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; import com.dungeoncrawler.control.Controller; @@ -7,8 +8,12 @@ import com.dungeoncrawler.control.Controller; public class DesktopLauncher { public static void main (String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); + config.width = 1600; config.height = 900; + config.title = "The Restless Caverns"; + config.addIcon("icon.png", Files.FileType.Internal); + new LwjglApplication(new Controller(), config); } }