Tworzę prostą grę typu Zelda-esque z góry na dół w libgdx i chcę wdrożyć lochy oparte na kafelkach, które są generowane proceduralnie, podobnie do tego.
Libgdx ma klasę o nazwie TiledMap, która wydaje się pasować do moich potrzeb, jednak dokumentacja poza oficjalnymi dokumentami sugeruje, że TiledMaps można używać tylko w połączeniu z plikami .tmx lub innymi słowy, wstępnie zaprojektowanymi mapami. Zrobiłem sporo Google'a bezskutecznie, więc pytam tutaj w ostateczności, mając nadzieję, że ktoś ma doświadczenie w używaniu libgdx do dynamicznie generowanych map kafelków.
edycja: Czy mogę użyć StaticTiledMapTiles w połączeniu z samouczkiem, do którego dowiązałem powyżej, aby osiągnąć swój cel?
Dzięki!
Odpowiedzi:
Możesz tworzyć kafelkowe mapy bez używania .tmx.
źródło
.tmx
pliku z libgdx github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/… . Dzięki.Opierając się na radach / r / gamedev , postanowiłem zrezygnować z korzystania z wbudowanych klas libgdx itp. I po prostu zbudować własne.
Mogę wprowadzić bardziej szczegółowe informacje na żądanie, ale w zasadzie oto co zrobiłem.
1: Wygeneruj loch używając algorytmu, z którym pierwotnie się połączyłem, i przechowuj współrzędne kafelków (nie współrzędne pikseli), używając
Coordinate
klasy, którą wykonałem wHashMap<Coord, MapTile>
.MapTile
to tylko klasa, która ma dane o typie kafelka.2: W
draw()
funkcji mojej głównej klasy dodałem następujący kodKtóre iteruje się w każdym
Coordinate
miejscudungeonMap
i rysuje kafelek (jeśli współrzędna znajduje się w frustum kamery) z globalnymtileSize
przesunięciem.źródło