Ich habe eine zufällige Höhenkarte erstellt und jetzt möchte ich Flüsse erstellen. Ich habe einen Algorithmus basierend auf einem * erstellt, um Flüsse von Gipfeln zum Meer fließen zu lassen, und jetzt bin ich auf der Suche nach einem eleganten Algorithmus, um sie zu rendern.
Es ist ein quadratisches 2D-Kartenraster. Die Zellen, die der Fluss pases, haben einen einfachen ganzzahligen Wert mit dieser Form: rivernumber && pointOrder. Dh: 10, 11, 12, 13, 14, 15, 16 ... 1 + N für den ersten Fluss, 20,21,22,23 ... 2 + N für den zweiten usw. Dies wird in der erstellt Die Generierungszeit des Kartenrasters wird nur einmal ausgeführt, wenn die Welt generiert wird.
Ich wollte jeden Fluss als Vektor behandeln, aber es gibt ein Problem: Wenn derselbe Fluss Zweige hat (weil ich etwas Lärm mache, um Zweige zu erzeugen), kann ich die Punkte nicht einfach der Reihe nach verbinden.
Die zweite Alternative besteht darin, einen komplexen Algorithmus zu generieren, bei dem jeder Punkt analysiert wird, geprüft wird, ob der nächste kein Zweig ist, wenn dies der Fall ist, ein anderer Algorithmus ausgelöst wird, der sich um den Zweig kümmert, und dann zum Hauptfluss zurückkehrt usw. Sehr komplex und unelegant.
Vielleicht gibt es eine Lösung im Algorithmus zur Erzeugung der Welt oder im Algorithmus zur Flusswiedergabe, die in diesen Fällen häufig verwendet wird und die mir nicht bekannt ist.
Irgendwelche Tipps? Vielen Dank!!