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

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

Loading…
Cancel
Save