Bagaimana Anda menangani ubin yang tidak rata saat merender peta ubin?

13

masukkan deskripsi gambar di sini

Inilah yang ingin saya lakukan dengan peta ubin saya yang saya tidak yakin. Seperti yang Anda lihat dinding bagian atas jauh lebih besar daripada bagian bawah dan samping (ini juga merupakan masalah dengan sudut saya yang bentuknya aneh [lebih mirip L dan persegi] dan juga lebih besar daripada 40x40px yang ada pada ubin saya saat ini. ).

masukkan deskripsi gambar di sini

Saya juga telah menempelkan lembaran ubin yang saya gunakan untuk ubin untuk menunjukkan kepada Anda seperti apa sudut dan puncaknya dibandingkan dengan ubin lainnya.

Apa yang saya pikirkan adalah saya mungkin bisa menggambar mereka menggunakan array yang sama yang saya miliki jika saya menggunakan lebar dan tinggi ubin bukan WxH set? Saya tidak tahu seberapa baik ini akan bekerja, tetapi jika blok yang memiliki nilai yang berbeda akan menjadi blok pemain / NPC tidak dapat diinjak maka itu mungkin tidak menjadi masalah, sekali lagi saya bahkan tidak yakin apakah itu layak larutan.

Kode saya jika Anda ingin melihat bagaimana saya saat ini menanganinya: Map.java (pastebin) (sunting: saya tidak menanganinya, berarti bagaimana saya saat ini melakukan peta)

tl; dr - bagaimana cara mengambil peta ubin yang terlihat 2d dan mengubahnya untuk memiliki ubin ukuran yang berbeda? atau adakah cara yang lebih baik untuk melakukan apa yang saya coba lakukan? Apakah ada nama metode yang harus saya cari saat googling?

Latensi
sumber

Jawaban:

19

Ada dua cara standar untuk melakukan ini.

  • Pisahkan ukuran ubin non-standar Anda menjadi ukuran ubin standar. Jadi potongan-potongan dinding itu menjadi "tumpukan" ubin persegi yang baru saja Anda ketahui untuk ditempatkan bersama di editor level Anda. Game seperti game Final Fantasy awal bekerja dengan cara ini.
  • Biarkan potongan ubin lebih tinggi dari tinggi ubin standar Anda. Sejajarkan ubin ke bagian bawah persegi panjang ubin Anda, memungkinkan tambahan untuk menggambar lebih tinggi dari ketinggian ubin biasa. Saat menggambar peta Anda, Anda menggambar ubin mulai dari belakang (kotak kuadrat lebih tinggi di layar), dan diakhiri dengan ubin bawah (yang di bagian bawah layar). Ini memastikan bahwa ubin tinggi di latar depan dilapis dengan benar di atas ubin di latar belakang. Perhatikan bahwa dalam pendekatan ini, ubin Anda masih terbatas pada satu ubin lebar.

Anda dapat melakukan salah satu atau kedua pendekatan ini. Bahkan permainan yang melakukan pendekatan "memecah menjadi tumpukan ubin" sering akan memungkinkan beberapa objek (pohon, dll) untuk melanggar batas ketinggian ubin, dan hanya menegakkan urutan gambar peta dari atas ke bawah untuk memastikan semuanya berlapis-lapis benar.

Trevor Powell
sumber
2
+1 untuk pendekatan kedua. Pada dasarnya itu memindahkan Anda dari peta ubin ke objek di peta.
Kromster mengatakan mendukung Monica
Sempurna terima kasih banyak, saya pikir itu mungkin sesuatu yang mirip dengan opsi kedua, tetapi saya ingin memastikan bahwa saya melakukannya dengan cara standar. = D
Latency
2

Iris dan potong ubin berukuran aneh agar sesuai dengan dimensi standar. Inti dari peta ubin adalah Anda mendapatkan banyak kecepatan dan utilitas dengan cara yang sama mengukur semuanya.

Patrick Hughes
sumber