Jak radzisz sobie z nierównymi kafelkami podczas renderowania mapy kafelków?

13

wprowadź opis zdjęcia tutaj

Oto, co chcę zrobić z moją mapą kafelków, której nie jestem pewien. Jak widać, górne ściany są znacznie większe niż dolne i boczne (jest to również problem z moimi narożnikami, które mają dziwne kształty [bardziej jak L niż kwadrat], a także większe niż 40x40px, że moje obecne płytki są ).

wprowadź opis zdjęcia tutaj

Dołączyłem również arkusz kafelków, którego używam do kafelków, aby pokazać, jak wyglądają narożniki i blaty w porównaniu z resztą kafelków.

Myślę, że mogę po prostu narysować je za pomocą tej samej tablicy, którą mam, jeśli użyję szerokości i wysokości płytek zamiast zestawu WxH? Nie wiem, jak dobrze to zadziała, ale gdyby bloki, które będą miały różne wartości, będą blokami, na które gracz / NPC nie mogą nadepnąć, to może nie być problem, znowu nie jestem nawet pewien, czy to jest wykonalne rozwiązanie.

Mój kod na wypadek, gdybyś chciał zobaczyć, jak go obecnie obsługuję: Map.java (pastebin) (edytuj: nie obsługuję go, to znaczy, jak obecnie wykonuję mapę)

tl; dr - jak mogę wziąć moją mapę kafelków 2d i zmienić ją tak, aby miała kafelki o innym rozmiarze? czy jest lepszy sposób na robienie tego, co próbuję? Czy jest jakaś metoda, której powinienem szukać podczas google?

Czas oczekiwania
źródło

Odpowiedzi:

19

Można to zrobić na dwa standardowe sposoby.

  • Podziel niestandardowe rozmiary płytek na standardowe rozmiary płytek. Te paski ścian stają się „stosem” kwadratowych płytek, które po prostu umiesz układać razem w edytorze poziomów. Gry takie jak wczesne gry Final Fantasy działały w ten sposób.
  • Niech dowolny kawałek płytki będzie wyższy niż standardowa wysokość płytki. Dopasuj kafelki do dolnej części prostokąta kafelków, umożliwiając rysowanie dodatków powyżej zwykłej wysokości kafelków. Podczas rysowania mapy rysujesz kafelki, zaczynając od tyłu (kwadraty kafelków znajdują się wyżej na ekranie), a kończąc na dolnych kafelkach (tych na dole ekranu). Dzięki temu wysokie kafelki na pierwszym planie są prawidłowo nakładane na kafelki w tle. Zauważ, że w tym podejściu twoje płytki są nadal ograniczone do pojedynczej płytki o szerokości.

Możesz zastosować jedno lub oba z tych podejść. Nawet gry wykorzystujące podejście „rozbicia na stosy kafelków” często pozwalają niektórym obiektom (drzewom itp.) Na przekroczenie limitów wysokości kafelków i narzucenie kolejności rysowania map od góry do dołu, aby mieć pewność, że wszystkie warstwy poprawnie.

Trevor Powell
źródło
2
+1 za drugie podejście. Zasadniczo przenosi Cię z mapy kafelków do obiektów na mapie.
Kromster,
Doskonale, dziękuję bardzo, myślałem, że może to być coś podobnego do drugiej opcji, ale chciałem się upewnić, że robię to w sposób znormalizowany. = D
Opóźnienie,
2

Kroisz i kroisz kafelki o nieparzystych rozmiarach, aby pasowały do ​​standardowych wymiarów. Cały sens mapy kafelkowej polega na tym, że zyskujesz dużą prędkość i użyteczność, wszystko o tym samym rozmiarze.

Patrick Hughes
źródło