Ich erstelle ein einfaches Zelda-ähnliches Top-Down-Spiel in libgdx und möchte kachelbasierte Dungeons implementieren, die ähnlich wie dieses prozedural generiert werden .
Libgdx hat eine Klasse namens TiledMap, die meinen Anforderungen zu entsprechen scheint. Die Dokumentation außerhalb der offiziellen Dokumente legt jedoch nahe, dass TiledMaps nur in Verbindung mit .tmx-Dateien oder mit anderen Worten vorgefertigten Karten verwendet werden kann. Ich habe ziemlich viel vergeblich gegoogelt, daher frage ich hier als letzten Ausweg in der Hoffnung, dass jemand Erfahrung mit libgdx für dynamisch generierte Kachelkarten hat.
Bearbeiten: Könnte ich StaticTiledMapTiles in Verbindung mit dem Tutorial verwenden, auf das ich oben verlinkt habe, um mein Ziel zu erreichen?
Vielen Dank!
Antworten:
Sie können gekachelte Karten ohne Verwendung von .tmx erstellen.
quelle
.tmx
Datei aus libgdx github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/… erforderlich ist . Vielen Dank.Aufgrund der Ratschläge von / r / gamedev habe ich beschlossen, auf die Verwendung der in libgdx integrierten Klassen TiledMap usw. zu verzichten und nur meine eigenen zu erstellen.
Ich kann auf Anfrage näher darauf eingehen, aber hier ist, was ich im Wesentlichen getan habe.
1: Generiere einen Dungeon mit dem Algorithmus, mit dem ich ursprünglich verknüpft war, und speichere Kachelkoordinaten (keine Pixelkoordinaten) mit einer
Coordinate
Klasse, die ich in a erstellt habeHashMap<Coord, MapTile>
.MapTile
ist nur eine Klasse, die Daten über den Kacheltyp enthält.2: In der
draw()
Funktion meiner Hauptklasse habe ich den folgenden Code hinzugefügtWelches iteriert über jedes
Coordinate
indungeonMap
und zeichnet die Kachel (wenn sich die Koordinate im Kamerastumpf befindet) mit einem globalentileSize
Versatz.quelle