doors always lead to other rooms
This commit is contained in:
parent
23eba51e5c
commit
52a59d2808
|
@ -29,7 +29,6 @@ public class DoorTile extends Tile implements Ticker {
|
|||
if (dist < 0.5f) {
|
||||
if (!waitForLeave) {
|
||||
Main.instance.getWorld().changeMap(this);
|
||||
waitForLeave = true;
|
||||
}
|
||||
} else {
|
||||
waitForLeave = false;
|
||||
|
@ -62,10 +61,15 @@ public class DoorTile extends Tile implements Ticker {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Tile clone() {
|
||||
public DoorTile clone() {
|
||||
DoorTile t = new DoorTile(posX, posY, map);
|
||||
t.setConnectedDoor(connected);
|
||||
t.side = side;
|
||||
t.map = map;
|
||||
return t;
|
||||
}
|
||||
|
||||
public void setMap(ImageMap map) {
|
||||
this.map = map;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,11 +27,9 @@ public class World extends Knoten {
|
|||
ImageMap start = new ImageMap("/res/images/maps/map2.png");
|
||||
dungeon.add(start);
|
||||
currentMap = start;
|
||||
currentMap.start();
|
||||
|
||||
start.generate(dungeon, DoorTile.BOTTOM);
|
||||
System.out.println("generated!");
|
||||
|
||||
currentMap.start();
|
||||
|
||||
player = new Player();
|
||||
currentMap.getEntities().add(player);
|
||||
|
@ -55,10 +53,10 @@ public class World extends Knoten {
|
|||
currentMap.entfernen(player.actionFigur);
|
||||
entfernen(currentMap);
|
||||
currentMap = door.getConnectedDoor().getMap();
|
||||
currentMap.add(player.actionFigur);
|
||||
add(currentMap);
|
||||
currentMap.add(player.actionFigur);
|
||||
currentMap.start();
|
||||
door.getConnectedDoor().waitForLeave();
|
||||
player.setPos(door.getConnectedDoor().posX + 0.5f, door.getConnectedDoor().posY + 0.5f);
|
||||
door.getConnectedDoor().waitForLeave();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,21 +88,24 @@ public class ImageMap extends Map {
|
|||
tiles[x][y] = map.getTile(x, y).clone();
|
||||
if (tiles[x][y] instanceof DoorTile) {
|
||||
DoorTile dt = (DoorTile) tiles[x][y];
|
||||
switch (dt.getSide()) {
|
||||
case DoorTile.TOP:
|
||||
if (dt.getSide() == DoorTile.TOP) {
|
||||
topDoor = dt;
|
||||
break;
|
||||
case DoorTile.BOTTOM:
|
||||
topDoor.setMap(this);
|
||||
}
|
||||
if (dt.getSide() == DoorTile.BOTTOM) {
|
||||
bottomDoor = dt;
|
||||
break;
|
||||
case DoorTile.LEFT:
|
||||
bottomDoor.setMap(this);
|
||||
}
|
||||
if (dt.getSide() == DoorTile.LEFT) {
|
||||
leftDoor = dt;
|
||||
break;
|
||||
case DoorTile.RIGHT:
|
||||
leftDoor.setMap(this);
|
||||
}
|
||||
if (dt.getSide() == DoorTile.RIGHT) {
|
||||
rightDoor = dt;
|
||||
break;
|
||||
rightDoor.setMap(this);
|
||||
}
|
||||
}
|
||||
add(tiles[x][y]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue