From 138bb33bd77013b7fb82d6bea1bd58e068162d84 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Tue, 7 Apr 2020 21:57:39 +0200 Subject: [PATCH] Es geht so halb --- .../model/DungeonGenerator.java | 36 +++++++++---------- .../com/dungeoncrawler/view/MapGenerator.java | 35 ++++++++++++------ 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/core/src/com/dungeoncrawler/model/DungeonGenerator.java b/core/src/com/dungeoncrawler/model/DungeonGenerator.java index c418582..a4d86ab 100644 --- a/core/src/com/dungeoncrawler/model/DungeonGenerator.java +++ b/core/src/com/dungeoncrawler/model/DungeonGenerator.java @@ -38,11 +38,11 @@ public class DungeonGenerator { // TODO: Zufällig Türen setzen - //int xPos = roomAmount / 2; - //int yPos = roomAmount / 2; + int xPos = roomAmount / 2; + int yPos = roomAmount / 2; - int xPos = (int) (Math.random() * roomAmount); - int yPos = (int) (Math.random() * roomAmount); + //int xPos = (int) (Math.random() * roomAmount); + //int yPos = (int) (Math.random() * roomAmount); tempLevel.setRoom(generateRoom(), xPos, yPos); @@ -53,8 +53,8 @@ public class DungeonGenerator { switch (direction) { // Oben case 0: - if(yPos != 0){ - yPos -= 1; + if(yPos != roomAmount - 1){ + yPos += 1; } break; // Rechts @@ -65,8 +65,8 @@ public class DungeonGenerator { break; // Unten case 2: - if(yPos != roomAmount - 1){ - yPos += 1; + if(yPos != 0){ + yPos -= 1; } break; // Links @@ -95,12 +95,10 @@ public class DungeonGenerator { Room tempRoom = new Room(new ItemContainer[itemAmount], new Entity[enemyAmount]); - return tempRoom; } private int[] generatePos(int sizeX, int sizeY, int tileSize){ - int[] position = new int[2]; int xPos = (int) (Math.random() * sizeX); @@ -117,17 +115,17 @@ public class DungeonGenerator { System.out.println("Level " + i); for(int j = 0; j < temp.getRooms().length; j++){ - //System.out.print(knoten[i].gebeName() + " "); - for(int k = 0; k < temp.getRooms().length; k++){ - if(temp.getRooms()[j][k] == null){ - System.out.print("0 "); - } - else{ - System.out.print("1 "); + + for(int k = 0; k < temp.getRooms().length; k++){ + if(temp.getRooms()[j][k] == null){ + System.out.print("0 "); + } + else{ + System.out.print("1 "); + } } + System.out.println(); } - System.out.println(); - } } } } diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 59fe0b0..2a04d5c 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -5,10 +5,8 @@ */ package com.dungeoncrawler.view; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.maps.MapLayer; import com.badlogic.gdx.maps.MapLayers; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; @@ -52,14 +50,33 @@ public class MapGenerator { Room room = l.getRooms()[x][y]; if(room != null){ - TiledMap tempRoom = generateRoom(room, sizeX, sizeY); + int tempX = 7; + int tempY = 5; + + 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); - temp.getCell(0, 3).setTile(new StaticTiledMapTile(splitTiles[0][3])); - temp.getCell(4, 6).setTile(new StaticTiledMapTile(splitTiles[0][3])); - temp.getCell(4, 0).setTile(new StaticTiledMapTile(splitTiles[0][3])); - temp.getCell(8, 3).setTile(new StaticTiledMapTile(splitTiles[0][3])); + + // Ausgang oben + if(y < l.getRooms()[0].length - 1 && l.getRooms()[x][y + 1] != null){ + temp.getCell((tempX / 2) + 1, tempY + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //oben + } + + // Ausgang rechts + if(x > 0 && l.getRooms()[x - 1][y] != null){ + temp.getCell(tempX + 1, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //rechts + } + + // Ausgang unten + if(y > 0 && l.getRooms()[x][y - 1] != null){ + temp.getCell((tempX / 2) + 1, 0).setTile(new StaticTiledMapTile(splitTiles[0][3])); //unten + } + + // Ausgang links + if(x < l.getRooms().length - 1 && l.getRooms()[x + 1][y] != null){ + temp.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //links + } tempLevel[x][y] = tempRoom; } @@ -70,10 +87,8 @@ public class MapGenerator { return tempLevel; } - private TiledMap generateRoom(Room r, int sizeX, int sizeY){ + private TiledMap generateRoom(Room r, int roomDimensionX, int roomDimensionY){ TiledMap tempRoom = new TiledMap(); - int roomDimensionX = 7; - int roomDimensionY = 5; int mapDimensionX = roomDimensionX + 2; int mapDimensionY = roomDimensionY + 2;