Java Libgdx jak zmienić mapę

Java Libgdx jak zmienić mapę
KU
  • Rejestracja:około 16 lat
  • Ostatnio:6 miesięcy
  • Postów:164
0

To jest mój pierwszy projekt w Libgdx, dopiero co utworzony. Mam dwie mapy .tmx. Chcę teraz po kliknięciu na określone współrzędne przenieść się z mapy first.tmx na second.tmx. Jak mogę to zrobić? Myślałem nad tą odpowiedzią tutaj ale nie wiem czy jest poprawna i jakiego typu jest ten renderer i jak go stworzyć i jak używać jako, że na necie w ogóle nie ma przykładów z użyciem tej klasy i metody .setMap().

Czy ktoś mi pomoże? Dziękuję z góry.

edytowany 2x, ostatnio: Kubaz
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:24 minuty
  • Postów:6687
1

Czy musisz zmieniać mapę?

Nie możesz np. teleportować gracza do odpowiedniego miejsca na tej samej mapie?

Powinieneś móc umieścić wszystkie lokacje oddalone od siebie, w jednym pliku.

A tak poza tym, jeśli jeszcze nie zabrnąłeś zbyt daleko w LibGDX, to polecam Unity 3D. Jest bardziej przystępne dla ludzi... Nie aż tak niskopoziomowe.


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
KU
@Spine: A jak wyobrażasz sobie sytuację, kiedy np. wchodzę do miasta albo do budyku? Koniecznie trzeba zmienić mapę... Unity nie bardzo, bo zależy mi, żeby móc klepać kod w Javie.
Spine
Java jest słabo wspierana przez rozbudowane narzędzia do gier, ale skoro Ci zależy.... Wchodzenie do miasta albo do budynku - łatwe. Budynki możesz trzymać np. pod współrzędnymi X = -5000. Miasta pod X = 0, a Y co 5000 zawiera inne miasto/inny budynek. Wszystkie oddzielne elementy mapy oddzielasz od siebie terenami nie do przejścia. W Unity mógłbyś po prostu kasować/deaktywować obecnie aktywną mapę i tworzyć instancję/aktywować nową mapę.
KU
  • Rejestracja:około 16 lat
  • Ostatnio:6 miesięcy
  • Postów:164
0

@Spine: A jak wykryć czy sprite stanie na określonym tile bo zakładam istnieje sensowniejszy sposób niż coś takiego if (sprite.getX() > 100 && sprite.getX() < 200 && sprite.getY() > 100 && sprite.getY() < 200) ?

edytowany 9x, ostatnio: Kubaz
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:24 minuty
  • Postów:6687
1

Bardziej eleganckie jest wykrywanie kolizji: https://stackoverflow.com/questions/40874444/collision-detection-in-libgdx-without-physical-response

W Unity byś musiał dodać do obiektu collider jako trigger i dołączyć do tego samego obiektu własny skrypt ze zdefiniowaną metodą OnTriggerEnter2D ( https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter2D.html ).


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.