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){
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();
//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")));
TiledMap[][][] maps = mg.generateMap(d);
m.setMaps(maps);
m = mg.generateMap(d);
mg.ichWillSpielen(m.getMaps());
tm = new TiledMap();
@ -107,7 +106,7 @@ public class GameScreen {
player.setX(p.getxPos());
player.setY(p.getyPos());
tm = getM().getMaps()[level][roomPosX][roomPosY];
tm = getM().getMaps()[level][roomPosX][roomPosY].getMap();
if(tm == null){
System.out.println("Dein scheiß geht net");

@ -6,16 +6,12 @@
package com.dungeoncrawler.view;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.maps.tiled.TiledMap;
/**
*
* @author jonathan
*/
public class Map {
private TiledMap[][][] maps;
private Sprite[] animatedObjects;
private MapContainer[][][] maps;
public Map(){
@ -24,33 +20,15 @@ public class Map {
/**
* @return the maps
*/
public TiledMap[][][] getMaps() {
public MapContainer[][][] getMaps() {
return maps;
}
/**
* @param maps the maps to set
*/
public void setMaps(TiledMap[][][] maps) {
public void setMaps(MapContainer[][][] 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;
TextureRegion[][] splitTiles;
Texture torchT;
TextureRegion[][] torch;
public MapGenerator(Texture tiles){
this.tiles = tiles;
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;
TiledMap[][][] tempMap = new TiledMap[levelAmount][][];
MapContainer[][][] tempMap = new MapContainer[levelAmount][][];
// Jedes Level wird generiert
for(int i = 0; i < levelAmount; i++){
TiledMap[][] tempLevel = generateLevel(i, d.getLevel()[i]);
MapContainer[][] tempLevel = generateLevel(i, d.getLevel()[i]);
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 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 y = 0; y < sizeY; y++){
@ -63,8 +70,9 @@ public class MapGenerator {
int mapDimensionX = tempX + 2;
int mapDimensionY = tempY + 2;
// Raum wird generiertf
TiledMap tempRoom = generateRoom(room, tempX, tempY, i);
// Raum wird generiert
MapContainer temp = generateRoom(room, tempX, tempY, i);
TiledMap tempRoom = temp.getMap();
// Wenn es Fehler gibt, dann wohl hier: Viel Spaß beim Suchen! Danke!
MapLayer collisionLayer = tempRoom.getLayers().get(0);
@ -173,7 +181,8 @@ public class MapGenerator {
collisionLayer.getObjects().add(tempBottom);
}
tempLevel[x][y] = tempRoom;
temp.setMap(tempRoom);
tempLevel[x][y] = temp;
}
}
@ -182,7 +191,7 @@ public class MapGenerator {
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 bodenY;
@ -196,6 +205,7 @@ public class MapGenerator {
bodenY = lvl - 4;
}
MapContainer temp;
TiledMap tempRoom = new TiledMap();
// 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(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++){
TiledMap[][] temp = map[i];
MapContainer[][] temp = map[i];
System.out.println("MapLevel " + i);

Loading…
Cancel
Save