master
Jonathan Hager 6 years ago
parent b64f88b545
commit a1b28c6ce1

@ -279,6 +279,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
//PASSIERT IN GAMESCREEN //PASSIERT IN GAMESCREEN
if(gs != null && mm == null && isPaused == false){ if(gs != null && mm == null && isPaused == false){
float tempX = d.getPlayer().getxPos();
float tempY = d.getPlayer().getyPos();
// Position des Players, etc. werden aktualisiert // Position des Players, etc. werden aktualisiert
updateObjects(level, roomPosX, roomPosY); updateObjects(level, roomPosX, roomPosY);
@ -288,7 +290,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
tileY = (int) d.getPlayer().getyPos() / 48; tileY = (int) d.getPlayer().getyPos() / 48;
if(tileX == 0 || tileX == roomX || tileY == 0 || tileY == roomY){ if(tileX == 0 || tileX == roomX || tileY == 0 || tileY == roomY){
updateRoom(); updateRoom((int) tempX, (int) tempY);
} }
@ -310,12 +312,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
MapLayers layers = gs.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers(); MapLayers layers = gs.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers();
MapObjects objects = layers.get(0).getObjects(); MapObjects objects = layers.get(0).getObjects();
MapObjects door = layers.get(3).getObjects();
//System.out.println(objects.getCount()); //System.out.println(objects.getCount());
updatePlayer(objects); updatePlayer(objects, door);
} }
public void updatePlayer(MapObjects objects){ public void updatePlayer(MapObjects objects, MapObjects door){
float x = d.getPlayer().getxPos(); float x = d.getPlayer().getxPos();
d.getPlayer().updateX(); d.getPlayer().updateX();
@ -332,6 +335,16 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
System.out.println("Es laedt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!"); System.out.println("Es laedt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!");
} }
} }
/*
for(RectangleMapObject rectangleObject : door.getByType(RectangleMapObject.class)){
Rectangle tempDoor = rectangleObject.getRectangle();
System.out.println("Door array");
if(Intersector.overlaps(gs.getPlayer().getCollisionSprite(), tempDoor) && !d.getPlayer().checkKey()){
d.getPlayer().setxPos(x);
}
}
*/
float y = d.getPlayer().getyPos(); float y = d.getPlayer().getyPos();
d.getPlayer().updateY(); d.getPlayer().updateY();
@ -347,10 +360,20 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
System.out.println("Es laedt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!"); System.out.println("Es laedt, es laedt, ich will nicht, dass es laedt, wenn es laedt, muss man immer so lange warten!!!!!");
} }
} }
/*
for(RectangleMapObject rectangleObject : door.getByType(RectangleMapObject.class)){
Rectangle tempDoor = rectangleObject.getRectangle();
if(Intersector.overlaps(gs.getPlayer().getCollisionSprite(), tempDoor) && !d.getPlayer().checkKey()){
d.getPlayer().setyPos(y);
}
}
*/
d.getPlayer().updateDirection(); d.getPlayer().updateDirection();
} }
public void updateRoom(){ public void updateRoom(int tempX, int tempY){
//System.out.println(roomX + " " + roomY); //System.out.println(roomX + " " + roomY);
//System.out.println("pos Player tiles: " + tileX + " " + tileY); //System.out.println("pos Player tiles: " + tileX + " " + tileY);

@ -84,6 +84,7 @@ public class MapGenerator {
// 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);
MapLayer doorLayer = tempRoom.getLayers().get(3);
TiledMapTileLayer staticLayer = (TiledMapTileLayer) tempRoom.getLayers().get(2); TiledMapTileLayer staticLayer = (TiledMapTileLayer) tempRoom.getLayers().get(2);
RectangleMapObject bottom = (RectangleMapObject) collisionLayer.getObjects().get(0); RectangleMapObject bottom = (RectangleMapObject) collisionLayer.getObjects().get(0);
@ -100,6 +101,9 @@ public class MapGenerator {
staticLayer.getCell((tempX / 2) + 1, tempY + 3).setTile(new StaticTiledMapTile(splitTiles[4][3])); //oben3 staticLayer.getCell((tempX / 2) + 1, tempY + 3).setTile(new StaticTiledMapTile(splitTiles[4][3])); //oben3
staticLayer.getCell((tempX / 2) + 0, tempY + 3).setTile(new StaticTiledMapTile(splitTiles[3][5])); //oben3-1 staticLayer.getCell((tempX / 2) + 0, tempY + 3).setTile(new StaticTiledMapTile(splitTiles[3][5])); //oben3-1
staticLayer.getCell((tempX / 2) + 2, tempY + 3).setTile(new StaticTiledMapTile(splitTiles[2][5])); //oben3+1 staticLayer.getCell((tempX / 2) + 2, tempY + 3).setTile(new StaticTiledMapTile(splitTiles[2][5])); //oben3+1
RectangleMapObject door = new RectangleMapObject((mapDimensionX / 2) * 48, mapDimensionY*48 - 48, 48, 48);
doorLayer.getObjects().add(door);
} }
else{ else{
// X: Exakte Mitte der Gesamtlänge, Y: Gesamtlänge // X: Exakte Mitte der Gesamtlänge, Y: Gesamtlänge
@ -124,6 +128,9 @@ public class MapGenerator {
if(x+1 == l.getExit()[0] && y == l.getExit()[1]){ if(x+1 == l.getExit()[0] && y == l.getExit()[1]){
staticLayer.getCell(tempX + 1, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][6])); //rechts staticLayer.getCell(tempX + 1, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[0][6])); //rechts
RectangleMapObject door = new RectangleMapObject(mapDimensionX*48 - 48, (mapDimensionY / 2) * 48, 48, 48);
doorLayer.getObjects().add(door);
} }
else{ else{
// X: Gesamtlänge, Y: Exakte Mitte der Gesamtlänge // X: Gesamtlänge, Y: Exakte Mitte der Gesamtlänge
@ -141,7 +148,7 @@ public class MapGenerator {
collisionLayer.getObjects().remove(right); collisionLayer.getObjects().remove(right);
RectangleMapObject tempTop = new RectangleMapObject(mapDimensionX*48 - 48, ((mapDimensionY / 2) + 1) * 48, 48, (mapDimensionY / 2) * 48); RectangleMapObject tempTop = new RectangleMapObject(mapDimensionX*48 - 48, ((mapDimensionY / 2) + 1) * 48, 48, (mapDimensionY / 2) * 48);
RectangleMapObject tempBottom = new RectangleMapObject(mapDimensionX*48 - 48, 0, 48, (mapDimensionY / 2) * 48); RectangleMapObject tempBottom = new RectangleMapObject((mapDimensionX / 2) * 48, 0, 48, (mapDimensionY / 2) * 48);
collisionLayer.getObjects().add(tempTop); collisionLayer.getObjects().add(tempTop);
collisionLayer.getObjects().add(tempBottom); collisionLayer.getObjects().add(tempBottom);
@ -152,6 +159,9 @@ public class MapGenerator {
if(x == l.getExit()[0] && y-1 == l.getExit()[1]){ if(x == l.getExit()[0] && y-1 == l.getExit()[1]){
staticLayer.getCell((tempX / 2) + 1, 0).setTile(new StaticTiledMapTile(splitTiles[1][6])); //unten staticLayer.getCell((tempX / 2) + 1, 0).setTile(new StaticTiledMapTile(splitTiles[1][6])); //unten
RectangleMapObject door = new RectangleMapObject((mapDimensionX / 2) * 48, 0, 48, 48);
doorLayer.getObjects().add(door);
} }
else{ else{
// X: Exakte Mitte der Gesamtlänge, Y: 0 // X: Exakte Mitte der Gesamtlänge, Y: 0
@ -174,6 +184,9 @@ public class MapGenerator {
if(x-1 == l.getExit()[0] && y == l.getExit()[1]){ if(x-1 == l.getExit()[0] && y == l.getExit()[1]){
staticLayer.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[2][6])); //links staticLayer.getCell(0, (tempY / 2) + 1).setTile(new StaticTiledMapTile(splitTiles[2][6])); //links
RectangleMapObject door = new RectangleMapObject(0, (mapDimensionY / 2) * 48, 48, 48);
doorLayer.getObjects().add(door);
} }
else{ else{
// X: 0, Y: Exakte Mitte der Gesamtlänge // X: 0, Y: Exakte Mitte der Gesamtlänge
@ -225,6 +238,7 @@ public class MapGenerator {
MapLayer collisionLayer = new MapLayer(); MapLayer collisionLayer = new MapLayer();
TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY + 2, 48, 48); TiledMapTileLayer dynamicLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY + 2, 48, 48);
TiledMapTileLayer staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY + 2, 48, 48); TiledMapTileLayer staticLayer = new TiledMapTileLayer(mapDimensionX, mapDimensionY + 2, 48, 48);
MapLayer doorLayer = new MapLayer();
RectangleMapObject bottom = new RectangleMapObject(0, 0, mapDimensionX*48, 48); RectangleMapObject bottom = new RectangleMapObject(0, 0, mapDimensionX*48, 48);
collisionLayer.getObjects().add(bottom); collisionLayer.getObjects().add(bottom);
@ -307,6 +321,7 @@ public class MapGenerator {
layers.add(collisionLayer); layers.add(collisionLayer);
layers.add(dynamicLayer); layers.add(dynamicLayer);
layers.add(staticLayer); layers.add(staticLayer);
layers.add(doorLayer);
for(int i = 0; i < r.getItems().size(); i++){ for(int i = 0; i < r.getItems().size(); i++){
if(r.getItems().get(i) != null){ if(r.getItems().get(i) != null){

Loading…
Cancel
Save