Der Mapgenerator generiert wie ein Weltmeister

master
Jonathan Hager 6 years ago
parent 926c517495
commit 275bc13e98

@ -24,8 +24,8 @@ public class MapGenerator {
Texture tiles; Texture tiles;
TextureRegion[][] splitTiles; TextureRegion[][] splitTiles;
public MapGenerator(String tiles){ public MapGenerator(Texture tiles){
this.tiles = new Texture(Gdx.files.internal(tiles)); this.tiles = tiles;
splitTiles = TextureRegion.split(this.tiles, 48, 48); splitTiles = TextureRegion.split(this.tiles, 48, 48);
} }
@ -41,26 +41,48 @@ public class MapGenerator {
} }
private TiledMap[][] generateLevel(int i, Level l){ private TiledMap[][] generateLevel(int i, Level l){
int width = l.getRooms().length; int sizeX = l.getRooms().length;
int height = l.getRooms()[0].length; int sizeY = l.getRooms()[0].length;
TiledMap[][] tempLevel = new TiledMap[width][height]; TiledMap[][] tempLevel = new TiledMap[sizeX][sizeY];
for(int x = 0; x < width; x++){ for(int x = 0; x < sizeX; x++){
for(int y = 0; y < height; y++){ for(int y = 0; y < sizeY; y++){
Room room = l.getRooms()[x][y]; Room room = l.getRooms()[x][y];
TiledMap tempRoom = generateRoom(room); if(room != null){
tempLevel[x][y] = tempRoom; TiledMap tempRoom = generateRoom(room, sizeX, sizeY);
tempLevel[x][y] = tempRoom;
}
else{
tempLevel[x][y] = null;
}
} }
} }
return tempLevel; return tempLevel;
} }
private TiledMap generateRoom(Room r){ private TiledMap generateRoom(Room r, int sizeX, int sizeY){
TiledMap tempRoom = new TiledMap(); TiledMap tempRoom = new TiledMap();
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);
for(int x = 0; x < 7; x++){
for(int y = 0; y < 5; y++){
TiledMapTileLayer.Cell cell = new TiledMapTileLayer.Cell();
cell.setTile(new StaticTiledMapTile(splitTiles[0][0]));
staticLayer.setCell(x, y, cell);
}
}
layers.add(collisionLayer);
layers.add(dynamicLayer);
layers.add(staticLayer);
return tempRoom; return tempRoom;
} }
} }

@ -2,11 +2,17 @@ package com.dungeoncrawler.view;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer;
import com.badlogic.gdx.graphics.g2d.TextureRegion; 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.entities.*; import com.dungeoncrawler.model.entities.*;
public class View { public class View {
@ -26,6 +32,12 @@ public class View {
Timer tlinks; Timer tlinks;
Timer trechts; Timer trechts;
Map tm;
TiledMapRenderer tmr;
TiledMap test;
OrthographicCamera camera;
Dungeon d;
public View() { public View() {
b = new Texture("Button.png"); b = new Texture("Button.png");
t = new Texture("Title.png"); t = new Texture("Title.png");
@ -51,6 +63,23 @@ public class View {
tlinks = new Timer(); tlinks = new Timer();
trechts = new Timer(); trechts = new Timer();
tm = 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);
for(int i=0;i<tm.getMaps()[0].length;i++){
for(int j=0;j<tm.getMaps()[0][0].length;j++){
if(tm.getMaps()[0][i][j] != null){
test = tm.getMaps()[0][i][j];
}
}
}
tmr = new OrthogonalTiledMapRenderer(test);
tunten.scheduleTask(new Timer.Task() { tunten.scheduleTask(new Timer.Task() {
@Override @Override
public void run() { public void run() {
@ -164,6 +193,13 @@ public class View {
tunten.start(); tunten.start();
} }
tmr.setView(camera);
tmr.render();
camera.zoom = 1000f;
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin(); batch.begin();
title.draw(batch); title.draw(batch);
button.draw(batch); button.draw(batch);

Loading…
Cancel
Save