Compare commits

..

2 Commits

Author SHA1 Message Date
Asecave
12c57e1c3c Merge branch 'master' of https://git.ngb.schule/Tim/Zoelda 2021-06-28 22:28:04 +02:00
Asecave
52a59d2808 doors always lead to other rooms 2021-06-28 22:27:58 +02:00
3 changed files with 21 additions and 16 deletions

View File

@@ -29,7 +29,6 @@ public class DoorTile extends Tile implements Ticker {
if (dist < 0.5f) { if (dist < 0.5f) {
if (!waitForLeave) { if (!waitForLeave) {
Main.instance.getWorld().changeMap(this); Main.instance.getWorld().changeMap(this);
waitForLeave = true;
} }
} else { } else {
waitForLeave = false; waitForLeave = false;
@@ -62,10 +61,15 @@ public class DoorTile extends Tile implements Ticker {
} }
@Override @Override
public Tile clone() { public DoorTile clone() {
DoorTile t = new DoorTile(posX, posY, map); DoorTile t = new DoorTile(posX, posY, map);
t.setConnectedDoor(connected); t.setConnectedDoor(connected);
t.side = side; t.side = side;
t.map = map;
return t; return t;
} }
public void setMap(ImageMap map) {
this.map = map;
}
} }

View File

@@ -27,11 +27,9 @@ public class World extends Knoten {
ImageMap start = new ImageMap("/res/images/maps/map2a.png"); ImageMap start = new ImageMap("/res/images/maps/map2a.png");
dungeon.add(start); dungeon.add(start);
currentMap = start; currentMap = start;
currentMap.start();
start.generate(dungeon, DoorTile.BOTTOM); start.generate(dungeon, DoorTile.BOTTOM);
System.out.println("generated!"); System.out.println("generated!");
currentMap.start();
player = new Player(); player = new Player();
currentMap.getEntities().add(player); currentMap.getEntities().add(player);
@@ -55,10 +53,10 @@ public class World extends Knoten {
currentMap.entfernen(player.actionFigur); currentMap.entfernen(player.actionFigur);
entfernen(currentMap); entfernen(currentMap);
currentMap = door.getConnectedDoor().getMap(); currentMap = door.getConnectedDoor().getMap();
currentMap.add(player.actionFigur);
add(currentMap); add(currentMap);
currentMap.add(player.actionFigur);
currentMap.start(); currentMap.start();
door.getConnectedDoor().waitForLeave();
player.setPos(door.getConnectedDoor().posX + 0.5f, door.getConnectedDoor().posY + 0.5f); player.setPos(door.getConnectedDoor().posX + 0.5f, door.getConnectedDoor().posY + 0.5f);
door.getConnectedDoor().waitForLeave();
} }
} }

View File

@@ -100,21 +100,24 @@ public class ImageMap extends Map {
tiles[x][y] = map.getTile(x, y).clone(); tiles[x][y] = map.getTile(x, y).clone();
if (tiles[x][y] instanceof DoorTile) { if (tiles[x][y] instanceof DoorTile) {
DoorTile dt = (DoorTile) tiles[x][y]; DoorTile dt = (DoorTile) tiles[x][y];
switch (dt.getSide()) { if (dt.getSide() == DoorTile.TOP) {
case DoorTile.TOP:
topDoor = dt; topDoor = dt;
break; topDoor.setMap(this);
case DoorTile.BOTTOM: }
if (dt.getSide() == DoorTile.BOTTOM) {
bottomDoor = dt; bottomDoor = dt;
break; bottomDoor.setMap(this);
case DoorTile.LEFT: }
if (dt.getSide() == DoorTile.LEFT) {
leftDoor = dt; leftDoor = dt;
break; leftDoor.setMap(this);
case DoorTile.RIGHT: }
if (dt.getSide() == DoorTile.RIGHT) {
rightDoor = dt; rightDoor = dt;
break; rightDoor.setMap(this);
} }
} }
add(tiles[x][y]);
} }
} }
} }