From 61c200b2d19e2a21b5cdb5e054db25a565a1544b Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Tue, 7 Apr 2020 20:00:41 +0200 Subject: [PATCH 1/7] =?UTF-8?q?W=C3=A4nde=20und=20Ausgang=20wird=20dargest?= =?UTF-8?q?ellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dungeoncrawler/view/MapGenerator.java | 38 ++++++++++++++----- core/src/com/dungeoncrawler/view/View.java | 3 +- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 3a07d3b..59fe0b0 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -8,6 +8,7 @@ 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,11 +53,17 @@ public class MapGenerator { if(room != null){ TiledMap tempRoom = generateRoom(room, sizeX, sizeY); + + // 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])); + tempLevel[x][y] = tempRoom; } - else{ - tempLevel[x][y] = null; - } + } } @@ -65,16 +72,29 @@ public class MapGenerator { private TiledMap generateRoom(Room r, int sizeX, int sizeY){ TiledMap tempRoom = new TiledMap(); + int roomDimensionX = 7; + int roomDimensionY = 5; + + int mapDimensionX = roomDimensionX + 2; + int mapDimensionY = roomDimensionY + 2; MapLayers layers = tempRoom.getLayers(); - TiledMapTileLayer collisionLayer = new TiledMapTileLayer(7, 5, 48, 48); - TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(7, 5, 48, 48); - TiledMapTileLayer staticLayer = new TiledMapTileLayer(7, 5, 48, 48); + TiledMapTileLayer collisionLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); + TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); + TiledMapTileLayer staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY, 48, 48); - for(int x = 0; x < 7; x++){ - for(int y = 0; y < 5; y++){ + for(int x = 0; x < mapDimensionX + 1; x++){ + for(int y = 0; y < mapDimensionY + 1; y++){ + TiledMapTileLayer.Cell cell = new TiledMapTileLayer.Cell(); - cell.setTile(new StaticTiledMapTile(splitTiles[0][0])); + + if(x == 0 || x == mapDimensionX - 1 || y == 0 || y == mapDimensionY - 1){ + cell.setTile(new StaticTiledMapTile(splitTiles[0][5])); + } + else{ + cell.setTile(new StaticTiledMapTile(splitTiles[0][0])); + } + staticLayer.setCell(x, y, cell); } } diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 9611f49..83d0e20 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -68,7 +68,6 @@ public class View { } tmr = new OrthogonalTiledMapRenderer(test); - } @@ -94,7 +93,7 @@ public class View { tmr.setView(camera); tmr.render(); - camera.zoom = 1000f; + camera.zoom = 1500f; camera.update(); batch.setProjectionMatrix(camera.combined); From 138bb33bd77013b7fb82d6bea1bd58e068162d84 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Tue, 7 Apr 2020 21:57:39 +0200 Subject: [PATCH 2/7] 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; From c206b30815851b27fd4f87cf8bd8cad9ffb305ee Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 8 Apr 2020 10:52:51 +0200 Subject: [PATCH 3/7] Zwischenstand --- core/src/com/dungeoncrawler/model/DungeonGenerator.java | 4 ++-- core/src/com/dungeoncrawler/view/MapGenerator.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/com/dungeoncrawler/model/DungeonGenerator.java b/core/src/com/dungeoncrawler/model/DungeonGenerator.java index a4d86ab..2437c6e 100644 --- a/core/src/com/dungeoncrawler/model/DungeonGenerator.java +++ b/core/src/com/dungeoncrawler/model/DungeonGenerator.java @@ -114,9 +114,9 @@ public class DungeonGenerator { Level temp = d.getLevel()[i]; System.out.println("Level " + i); - for(int j = 0; j < temp.getRooms().length; j++){ + for(int j = temp.getRooms().length - 1; j >=0; j--){ - for(int k = 0; k < temp.getRooms().length; k++){ + for(int k = temp.getRooms().length - 1; k >= 0; k--){ if(temp.getRooms()[j][k] == null){ System.out.print("0 "); } diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 2a04d5c..7cff9f3 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -63,8 +63,8 @@ public class MapGenerator { 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){ + // Ausgang rechts + if(x < l.getRooms().length - 1 && l.getRooms()[x + 1][y] != null){ temp.getCell(tempX + 1, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //rechts } @@ -74,7 +74,7 @@ public class MapGenerator { } // Ausgang links - if(x < l.getRooms().length - 1 && l.getRooms()[x + 1][y] != null){ + if(x > 0 && l.getRooms()[x - 1][y] != null){ temp.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //links } From 81c054370226e9ca7db715e71697ad73d27e1cca Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 8 Apr 2020 16:17:47 +0200 Subject: [PATCH 4/7] Umbau im Ansatz vorhanden --- .../dungeoncrawler/control/Controller.java | 38 +++++++++++-------- .../dungeoncrawler/model/entities/Player.java | 2 - core/src/com/dungeoncrawler/view/View.java | 20 +++++----- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 5e0f610..f0240e8 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -9,7 +9,6 @@ import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; -import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.dungeoncrawler.view.*; import com.dungeoncrawler.model.Dungeon; @@ -23,7 +22,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Dungeon d; DungeonGenerator dg; MainMenu v; - Player p; Entity[] e; Timer t; View m; @@ -35,8 +33,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ batch = new SpriteBatch(); v = new MainMenu(); - p = new Player(); - d = new Dungeon(p); + d = new Dungeon(new Player()); dg = new DungeonGenerator(); dg.ichWillSpielen(); e = new Entity[5]; @@ -78,10 +75,19 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void render(){ if(v != null){ - v.render(batch, p , e); + v.render(batch, d.getPlayer() , e); } if(v == null){ - m.render(batch, p, a); + int xPosRoom = d.getPlayer().getxPos() / 48; + int yPosRoom = d.getPlayer().getyPos() / 48; + + System.out.println(xPosRoom + " " + yPosRoom); + + d.getPlayer().setxPos(d.getPlayer().getxPos()+ d.getPlayer().getMovementX()); + d.getPlayer().setyPos(d.getPlayer().getyPos()+ d.getPlayer().getMovementY()); + + // Render methode zum rendern der einzelnen Sprites wird aufgerufen + m.render(batch, d.getPlayer(), a, xPosRoom, yPosRoom); } } @@ -94,19 +100,19 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ public boolean keyDown(int keycode) { if(keycode == Input.Keys.LEFT){ if(v != null){ - v.moveCursor(3); + v.moveCursor(3); } if(m != null){ - p.setMovementX(-3); + d.getPlayer().setMovementX(-3); } } if(keycode == Input.Keys.RIGHT){ if(v != null){ - v.moveCursor(1); + v.moveCursor(1); } if(m != null){ - p.setMovementX(3); + d.getPlayer().setMovementX(3); } } @@ -115,7 +121,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.moveCursor(2); } if(m != null){ - p.setMovementY(-3); + d.getPlayer().setMovementY(-3); } } @@ -124,7 +130,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.moveCursor(0); } if(m != null){ - p.setMovementY(3); + d.getPlayer().setMovementY(3); } } @@ -148,7 +154,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.stopCursor(3); } if(m != null){ - p.setMovementX(0); + d.getPlayer().setMovementX(0); } } @@ -157,7 +163,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.stopCursor(1); } if(m != null){ - p.setMovementX(0); + d.getPlayer().setMovementX(0); } } @@ -166,7 +172,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.stopCursor(2); } if(m != null){ - p.setMovementY(0); + d.getPlayer().setMovementY(0); } } @@ -175,7 +181,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.stopCursor(0); } if(m != null){ - p.setMovementY(0); + d.getPlayer().setMovementY(0); } } diff --git a/core/src/com/dungeoncrawler/model/entities/Player.java b/core/src/com/dungeoncrawler/model/entities/Player.java index 60a543b..c355e42 100644 --- a/core/src/com/dungeoncrawler/model/entities/Player.java +++ b/core/src/com/dungeoncrawler/model/entities/Player.java @@ -24,6 +24,4 @@ public class Player extends Entity { // TODO: Sinnvolle Werte finden } - - } diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 83d0e20..ece2f2c 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -28,7 +28,7 @@ public class View { Sprite[] entitySprites; //MAP - Map tm; + Map m; TiledMapRenderer tmr; TiledMap test; OrthographicCamera camera; @@ -52,17 +52,17 @@ public class View { //MAP - tm = new Map(); + m = new Map(); camera = new OrthographicCamera(1, h/w); d = new DungeonGenerator().generateDungeon(10, 10, 48, new Player()); MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tiles.gif"))); TiledMap[][][] maps = mg.generateMap(7, d); - tm.setMaps(maps); + m.setMaps(maps); - for(int i=0;i Date: Wed, 8 Apr 2020 17:06:08 +0200 Subject: [PATCH 5/7] nix funktioniert --- .../dungeoncrawler/control/Controller.java | 40 +++++++++++++++---- core/src/com/dungeoncrawler/model/Entity.java | 3 +- core/src/com/dungeoncrawler/view/View.java | 16 ++++---- 3 files changed, 43 insertions(+), 16 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index f0240e8..746e48a 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -33,8 +33,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ batch = new SpriteBatch(); v = new MainMenu(); - d = new Dungeon(new Player()); dg = new DungeonGenerator(); + d = dg.generateDungeon(0, 0, 0, new Player()); dg.ichWillSpielen(); e = new Entity[5]; Gdx.input.setInputProcessor(this); @@ -78,16 +78,42 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.render(batch, d.getPlayer() , e); } if(v == null){ - int xPosRoom = d.getPlayer().getxPos() / 48; - int yPosRoom = d.getPlayer().getyPos() / 48; + int[] tile = new int[2]; + tile[0] = d.getPlayer().getxPos() / 48; + tile[1] = d.getPlayer().getyPos() / 48; - System.out.println(xPosRoom + " " + yPosRoom); + System.out.println(tile[0] + " " + tile[1]); - d.getPlayer().setxPos(d.getPlayer().getxPos()+ d.getPlayer().getMovementX()); - d.getPlayer().setyPos(d.getPlayer().getyPos()+ d.getPlayer().getMovementY()); + d.getPlayer().update(); + + int roomLengthX = d.getLevel()[0].getRooms().length; + int roomLengthY = d.getLevel()[0].getRooms()[0].length; + int roomAmount = d.getLevel()[0].getRooms().length; + + int startRoom = (int) (Math.random() * roomAmount); + + int[] posRoom = new int[2]; + int level = 0; + + int k = 0; + for(int i = 0; i < roomLengthX; i++){ + for(int j = 0; j < roomLengthY; j++){ + + if(d.getLevel()[0].getRooms()[i][j] != null){ + k++; + + if(k == startRoom){ + // Startraum wurde ausgewählt + posRoom[0] = i; + posRoom[1] = j; + } + } + + } + } // Render methode zum rendern der einzelnen Sprites wird aufgerufen - m.render(batch, d.getPlayer(), a, xPosRoom, yPosRoom); + m.render(batch, d.getPlayer(), a, tile, level, posRoom); } } diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 7747d27..9e06456 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -27,7 +27,8 @@ public abstract class Entity { } public void update(){ - + xPos += movementX; + yPos += movementY; } public void die(){ diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index ece2f2c..a500820 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -59,25 +59,24 @@ public class View { TiledMap[][][] maps = mg.generateMap(7, d); m.setMaps(maps); - for(int i=0;i Date: Wed, 8 Apr 2020 21:11:50 +0200 Subject: [PATCH 6/7] Fehler, welche offentsichtlich unter Drogeneinfluss gemacht wurden, sind behoben --- .../dungeoncrawler/control/Controller.java | 18 ++++++----- .../model/DungeonGenerator.java | 5 ++-- core/src/com/dungeoncrawler/model/Level.java | 2 +- .../com/dungeoncrawler/view/MapGenerator.java | 30 +++++++++++++++++-- core/src/com/dungeoncrawler/view/View.java | 18 +++++++---- 5 files changed, 52 insertions(+), 21 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 746e48a..6da96c8 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -35,7 +35,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v = new MainMenu(); dg = new DungeonGenerator(); d = dg.generateDungeon(0, 0, 0, new Player()); - dg.ichWillSpielen(); + dg.ichWillSpielen(d); e = new Entity[5]; Gdx.input.setInputProcessor(this); t = new Timer(); @@ -90,7 +90,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ int roomLengthY = d.getLevel()[0].getRooms()[0].length; int roomAmount = d.getLevel()[0].getRooms().length; - int startRoom = (int) (Math.random() * roomAmount); + int startRoom = (int) (0.5 * roomAmount);//(int) (Math.random() * roomAmount); int[] posRoom = new int[2]; int level = 0; @@ -98,15 +98,17 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ int k = 0; for(int i = 0; i < roomLengthX; i++){ for(int j = 0; j < roomLengthY; j++){ - - if(d.getLevel()[0].getRooms()[i][j] != null){ - k++; - - if(k == startRoom){ + if(d.getLevel()[level].getRooms()[i][j] != null){ + + if(true){ // Startraum wurde ausgewählt posRoom[0] = i; posRoom[1] = j; + System.out.println(i + " " + j); + break; } + + k++; } } @@ -165,7 +167,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ if(v.click() == -1){} else if(v.click() == 0){ v = null; - m = new View(); + m = new View(d); System.out.println("NICE"); } } diff --git a/core/src/com/dungeoncrawler/model/DungeonGenerator.java b/core/src/com/dungeoncrawler/model/DungeonGenerator.java index 2437c6e..1686c57 100644 --- a/core/src/com/dungeoncrawler/model/DungeonGenerator.java +++ b/core/src/com/dungeoncrawler/model/DungeonGenerator.java @@ -107,14 +107,13 @@ public class DungeonGenerator { return position; } - public void ichWillSpielen(){ - Dungeon d = this.generateDungeon(200, 200, 200, new Player()); + public void ichWillSpielen(Dungeon d){ for(int i=0;i=0; j--){ + for(int j = 0; j < temp.getRooms().length; j++){ for(int k = temp.getRooms().length - 1; k >= 0; k--){ if(temp.getRooms()[j][k] == null){ diff --git a/core/src/com/dungeoncrawler/model/Level.java b/core/src/com/dungeoncrawler/model/Level.java index f136a45..62caaac 100644 --- a/core/src/com/dungeoncrawler/model/Level.java +++ b/core/src/com/dungeoncrawler/model/Level.java @@ -33,7 +33,7 @@ public class Level { } public void setRoom(Room room, int x, int y){ - if(x < this.rooms.length){ + if(x < this.rooms.length && y < this.rooms.length){ this.rooms[x][y] = room; } } diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 7cff9f3..9c4fb76 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -28,7 +28,9 @@ public class MapGenerator { splitTiles = TextureRegion.split(this.tiles, 48, 48); } - public TiledMap[][][] generateMap(int levelAmount, Dungeon d){ + public TiledMap[][][] generateMap(Dungeon d){ + int levelAmount = d.getLevel().length; + TiledMap[][][] tempMap = new TiledMap[levelAmount][][]; for(int i = 0; i < levelAmount; i++){ @@ -54,7 +56,7 @@ public class MapGenerator { 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); @@ -76,7 +78,7 @@ public class MapGenerator { // Ausgang links if(x > 0 && l.getRooms()[x - 1][y] != null){ temp.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //links - } + }*/ tempLevel[x][y] = tempRoom; } @@ -120,4 +122,26 @@ public class MapGenerator { return tempRoom; } + + public void ichWillSpielen(TiledMap[][][] map){ + + for(int i=0;i= 0; k--){ + if(temp[j][k] == null){ + System.out.print("0 "); + } + else{ + System.out.print("1 "); + } + } + System.out.println(); + } + } + } } diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index a500820..7b32716 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -6,13 +6,11 @@ import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.Sprite; -import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapRenderer; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; import com.dungeoncrawler.model.Dungeon; -import com.dungeoncrawler.model.DungeonGenerator; import com.dungeoncrawler.model.Entity; import com.dungeoncrawler.model.entities.*; @@ -32,9 +30,8 @@ public class View { TiledMapRenderer tmr; TiledMap test; OrthographicCamera camera; - Dungeon d; - public View() { + public View(Dungeon d) { float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); float wc = w/2; @@ -54,10 +51,12 @@ public class View { //MAP m = new Map(); camera = new OrthographicCamera(1, h/w); - d = new DungeonGenerator().generateDungeon(10, 10, 48, new Player()); + MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tiles.gif"))); - TiledMap[][][] maps = mg.generateMap(7, d); + + TiledMap[][][] maps = mg.generateMap(d); m.setMaps(maps); + mg.ichWillSpielen(m.getMaps()); test = new TiledMap(); tmr = new OrthogonalTiledMapRenderer(test); @@ -77,6 +76,13 @@ public class View { test = m.getMaps()[level][xPosRoom][yPosRoom]; + if(test == null){ + System.out.println("Dein scheiß geht net"); + } + else{ + tmr = new OrthogonalTiledMapRenderer(test); + } + if(p.getMovementX() == 3){ player.setRegion(regions[0][1]); } From aff01463129a1fa39b9da4e58b105164bce0c98b Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 8 Apr 2020 23:31:40 +0200 Subject: [PATCH 7/7] Ich bin so geil --- .../dungeoncrawler/control/Controller.java | 97 ++++++++++++++----- .../com/dungeoncrawler/view/MapGenerator.java | 4 +- 2 files changed, 73 insertions(+), 28 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 6da96c8..ca0c530 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -26,6 +26,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Timer t; View m; Archer a; + int[] tile; + int[] posRoom; + int level; @Override public void create(){ @@ -36,7 +39,38 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ dg = new DungeonGenerator(); d = dg.generateDungeon(0, 0, 0, new Player()); dg.ichWillSpielen(d); + + tile = new int[2]; + posRoom = new int[2]; + + int roomLengthX = d.getLevel()[0].getRooms().length; + int roomLengthY = d.getLevel()[0].getRooms()[0].length; + int roomAmount = d.getLevel()[0].getRooms().length; + + int startRoom = (int) (Math.random() * roomAmount); + + level = 0; + + int k = 0; + for(int i = 0; i < roomLengthX; i++){ + for(int j = 0; j < roomLengthY; j++){ + if(d.getLevel()[level].getRooms()[i][j] != null){ + + if(k == startRoom){ + // Startraum wurde ausgewählt + posRoom[0] = i; + posRoom[1] = j; + + } + + k++; + } + + } + } + e = new Entity[5]; + Gdx.input.setInputProcessor(this); t = new Timer(); t.scheduleTask(new Timer.Task() { @@ -78,40 +112,51 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.render(batch, d.getPlayer() , e); } if(v == null){ - int[] tile = new int[2]; + + d.getPlayer().update(); + tile[0] = d.getPlayer().getxPos() / 48; tile[1] = d.getPlayer().getyPos() / 48; - System.out.println(tile[0] + " " + tile[1]); + System.out.println("pos Player tiles: " + tile[0] + " " + tile[1]); - d.getPlayer().update(); + int xPos = tile[0]; + int yPos = tile[1]; - int roomLengthX = d.getLevel()[0].getRooms().length; - int roomLengthY = d.getLevel()[0].getRooms()[0].length; - int roomAmount = d.getLevel()[0].getRooms().length; + // oben + if(xPos == 4 && yPos == 6){ + System.out.println("oben"); + + posRoom[1] += 1; + d.getPlayer().setxPos(100); + d.getPlayer().setyPos(100); + } - int startRoom = (int) (0.5 * roomAmount);//(int) (Math.random() * roomAmount); + // rechts + if(xPos == 8 && yPos == 3){ + System.out.println("rechts"); + + posRoom[0] += 1; + d.getPlayer().setxPos(100); + d.getPlayer().setyPos(100); + } - int[] posRoom = new int[2]; - int level = 0; + // unten + if(xPos == 4 && yPos == 0){ + System.out.println("unten"); + + posRoom[1] -= 1; + d.getPlayer().setxPos(100); + d.getPlayer().setyPos(100); + } - int k = 0; - for(int i = 0; i < roomLengthX; i++){ - for(int j = 0; j < roomLengthY; j++){ - if(d.getLevel()[level].getRooms()[i][j] != null){ - - if(true){ - // Startraum wurde ausgewählt - posRoom[0] = i; - posRoom[1] = j; - System.out.println(i + " " + j); - break; - } - - k++; - } - - } + // links + if(xPos == 0 && yPos == 3){ + System.out.println("links"); + + posRoom[0] -= 1; + d.getPlayer().setxPos(100); + d.getPlayer().setyPos(100); } // Render methode zum rendern der einzelnen Sprites wird aufgerufen diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index 9c4fb76..be57833 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -56,7 +56,7 @@ public class MapGenerator { 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); @@ -78,7 +78,7 @@ public class MapGenerator { // Ausgang links if(x > 0 && l.getRooms()[x - 1][y] != null){ temp.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][3])); //links - }*/ + } tempLevel[x][y] = tempRoom; }