Leider keine 5dimensionalen Arrays :(

master
Jonathan Hager 6 years ago
parent ecfc3ce593
commit 991c60944f

@ -159,7 +159,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public void updateObjects(int level, int roomPosX, int roomPosY){ public void updateObjects(int level, int roomPosX, int roomPosY){
MapLayers layers = m.getM().getMaps()[level][roomPosX][roomPosY].getLayers(); MapLayers layers = m.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers();
MapObjects objects = layers.get(0).getObjects(); MapObjects objects = layers.get(0).getObjects();
//System.out.println(objects.getCount()); //System.out.println(objects.getCount());

@ -85,8 +85,7 @@ public class GameScreen {
MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tilesets/tileset_floor_1.png"))); MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tilesets/tileset_floor_1.png")));
TiledMap[][][] maps = mg.generateMap(d); m = mg.generateMap(d);
m.setMaps(maps);
mg.ichWillSpielen(m.getMaps()); mg.ichWillSpielen(m.getMaps());
tm = new TiledMap(); tm = new TiledMap();
@ -107,7 +106,7 @@ public class GameScreen {
player.setX(p.getxPos()); player.setX(p.getxPos());
player.setY(p.getyPos()); player.setY(p.getyPos());
tm = getM().getMaps()[level][roomPosX][roomPosY]; tm = getM().getMaps()[level][roomPosX][roomPosY].getMap();
if(tm == null){ if(tm == null){
System.out.println("Dein scheiß geht net"); System.out.println("Dein scheiß geht net");

@ -6,16 +6,12 @@
package com.dungeoncrawler.view; package com.dungeoncrawler.view;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.maps.tiled.TiledMap;
/** /**
* *
* @author jonathan * @author jonathan
*/ */
public class Map { public class Map {
private TiledMap[][][] maps; private MapContainer[][][] maps;
private Sprite[] animatedObjects;
public Map(){ public Map(){
@ -24,33 +20,15 @@ public class Map {
/** /**
* @return the maps * @return the maps
*/ */
public TiledMap[][][] getMaps() { public MapContainer[][][] getMaps() {
return maps; return maps;
} }
/** /**
* @param maps the maps to set * @param maps the maps to set
*/ */
public void setMaps(TiledMap[][][] maps) { public void setMaps(MapContainer[][][] maps) {
this.maps = maps; this.maps = maps;
} }
/**
* @return the animatedObjects
*/
public Sprite[] getAnimatedObjects() {
return animatedObjects;
}
/**
* @param animatedObjects the animatedObjects to set
*/
public void setAnimatedObjects(Sprite[] animatedObjects) {
this.animatedObjects = animatedObjects;
}
public void setAnimatedObjects(Sprite animatedObjects, int i) {
this.animatedObjects[i] = animatedObjects;
}
} }

@ -0,0 +1,78 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.dungeoncrawler.view;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.maps.tiled.TiledMap;
/**
*
* @author jonathan
*/
public class MapContainer {
private TiledMap map;
private Sprite[] animatedObjects;
private TextureRegion[][][] textures;
public MapContainer(TiledMap map, int objectAmount){
this.map = map;
this.animatedObjects = new Sprite[objectAmount];
this.textures = new TextureRegion[objectAmount][][];
}
/**
* @return the map
*/
public TiledMap getMap() {
return map;
}
/**
* @param map the map to set
*/
public void setMap(TiledMap map) {
this.map = map;
}
/**
* @return the animatedObjects
*/
public Sprite[] getAnimatedObjects() {
return animatedObjects;
}
/**
* @param animatedObjects the animatedObjects to set
*/
public void setAnimatedObjects(Sprite[] animatedObjects) {
this.animatedObjects = animatedObjects;
}
public void setAnimatedObjects(Sprite animatedObject, int i) {
this.animatedObjects[i] = animatedObject;
}
/**
* @return the textures
*/
public TextureRegion[][][] getTextures() {
return textures;
}
/**
* @param textures the textures to set
*/
public void setTextures(TextureRegion[][][] textures) {
this.textures = textures;
}
public void setTextures(TextureRegion[][] textures, int i) {
this.textures[i] = textures;
}
}

@ -25,32 +25,39 @@ public class MapGenerator {
Texture tiles; Texture tiles;
TextureRegion[][] splitTiles; TextureRegion[][] splitTiles;
Texture torchT;
TextureRegion[][] torch;
public MapGenerator(Texture tiles){ public MapGenerator(Texture tiles){
this.tiles = tiles; this.tiles = tiles;
splitTiles = TextureRegion.split(this.tiles, 48, 48); splitTiles = TextureRegion.split(this.tiles, 48, 48);
torchT = new Texture("sprites/torch.png");
torch = TextureRegion.split(torchT, 48, 48);
} }
public TiledMap[][][] generateMap(Dungeon d){ public Map generateMap(Dungeon d){
Map temp = new Map();
int levelAmount = d.getLevel().length; int levelAmount = d.getLevel().length;
TiledMap[][][] tempMap = new TiledMap[levelAmount][][]; MapContainer[][][] tempMap = new MapContainer[levelAmount][][];
// Jedes Level wird generiert // Jedes Level wird generiert
for(int i = 0; i < levelAmount; i++){ for(int i = 0; i < levelAmount; i++){
TiledMap[][] tempLevel = generateLevel(i, d.getLevel()[i]); MapContainer[][] tempLevel = generateLevel(i, d.getLevel()[i]);
tempMap[i] = tempLevel; tempMap[i] = tempLevel;
} }
return tempMap; temp.setMaps(tempMap);
return temp;
} }
private TiledMap[][] generateLevel(int i, Level l){ private MapContainer[][] generateLevel(int i, Level l){
int sizeX = l.getRooms().length; int sizeX = l.getRooms().length;
int sizeY = l.getRooms()[0].length; int sizeY = l.getRooms()[0].length;
TiledMap[][] tempLevel = new TiledMap[sizeX][sizeY]; MapContainer[][] tempLevel = new MapContainer[sizeX][sizeY];
for(int x = 0; x < sizeX; x++){ for(int x = 0; x < sizeX; x++){
for(int y = 0; y < sizeY; y++){ for(int y = 0; y < sizeY; y++){
@ -63,8 +70,9 @@ public class MapGenerator {
int mapDimensionX = tempX + 2; int mapDimensionX = tempX + 2;
int mapDimensionY = tempY + 2; int mapDimensionY = tempY + 2;
// Raum wird generiertf // Raum wird generiert
TiledMap tempRoom = generateRoom(room, tempX, tempY, i); MapContainer temp = generateRoom(room, tempX, tempY, i);
TiledMap tempRoom = temp.getMap();
// Wenn es Fehler gibt, dann wohl hier: Viel Spaß beim Suchen! Danke! // Wenn es Fehler gibt, dann wohl hier: Viel Spaß beim Suchen! Danke!
MapLayer collisionLayer = tempRoom.getLayers().get(0); MapLayer collisionLayer = tempRoom.getLayers().get(0);
@ -173,7 +181,8 @@ public class MapGenerator {
collisionLayer.getObjects().add(tempBottom); collisionLayer.getObjects().add(tempBottom);
} }
tempLevel[x][y] = tempRoom; temp.setMap(tempRoom);
tempLevel[x][y] = temp;
} }
} }
@ -182,7 +191,7 @@ public class MapGenerator {
return tempLevel; return tempLevel;
} }
private TiledMap generateRoom(Room r, int roomDimensionX, int roomDimensionY, int lvl){ private MapContainer generateRoom(Room r, int roomDimensionX, int roomDimensionY, int lvl){
int bodenX; int bodenX;
int bodenY; int bodenY;
@ -196,6 +205,7 @@ public class MapGenerator {
bodenY = lvl - 4; bodenY = lvl - 4;
} }
MapContainer temp;
TiledMap tempRoom = new TiledMap(); TiledMap tempRoom = new TiledMap();
// roomDimension bezieht sich auf die Größe des Raumes, da aber noch die Wände fehlen, // roomDimension bezieht sich auf die Größe des Raumes, da aber noch die Wände fehlen,
@ -298,13 +308,14 @@ public class MapGenerator {
layers.add(dynamicLayer); layers.add(dynamicLayer);
layers.add(staticLayer); layers.add(staticLayer);
return tempRoom; temp = new MapContainer(tempRoom, 0);
return temp;
} }
public void ichWillSpielen(TiledMap[][][] map){ public void ichWillSpielen(MapContainer[][][] map){
for(int i=0;i<map.length;i++){ for(int i=0;i<map.length;i++){
TiledMap[][] temp = map[i]; MapContainer[][] temp = map[i];
System.out.println("MapLevel " + i); System.out.println("MapLevel " + i);

Loading…
Cancel
Save