Ich versuche zufällig eine Karte von Räumen zu erstellen, die durch Türen verbunden sind, und es ist mir gelungen, eine mit diesem Code zu erstellen:
public void generate(GameContainer gc) {
rooms = new ArrayList<Room>();
startingRoom = new Room(0);
startingRoom.setPosition(viewport.getCenterX(), viewport.getCenterY());
lastRoom = startingRoom;
rooms.add(startingRoom);
int roomsize = 25;
for (int i = 0; i <= (1000 + Math.random() * 4000); i++) {
Room room = new Room(i + 1);
int direction = (int) (Math.random() * (4));
switch (direction) {
case 0:
room.setPosition(lastRoom.x, lastRoom.y - roomsize);
break;
case 1:
room.setPosition(lastRoom.x, lastRoom.y + roomsize);
break;
case 2:
room.setPosition(lastRoom.x + roomsize, lastRoom.y);
break;
case 3:
room.setPosition(lastRoom.x - roomsize, lastRoom.y);
break;
default:
room.setPosition(lastRoom.x, lastRoom.y - roomsize);
break;
}
rooms.add(room);
lastRoom = room;
}
}
Dies erlaubt mir jedoch nicht herauszufinden, welche Türen der gegebene Raum hat. Ich muss in der Lage sein, das herauszufinden, damit ich die Türen an den richtigen Stellen platzieren kann, damit sie für angrenzende Räume verwendet werden können. Ist diese Art von "Smart Map" mit meinem aktuellen Algorithmus möglich oder sollte ich von vorne beginnen? Welche Schritte kann ich unternehmen, um dies zum Laufen zu bringen?
Ich benutze dafür Slick2d und Java
Vielen Dank.