Saya mencoba mengembangkan game bergaya Zelda sederhana. Saya menemukan topik yang sangat berguna ini
Bagaimana LoZ: Tautan ke Masa Lalu menangani tabrakan sub-ubin?
yang saya gunakan sebagai referensi untuk mengembangkan mekanisme deteksi tabrakan saya. Namun, ada sesuatu yang gagal saya pahami. Ketika Link berada di belakang bangunan, hanya sebagian dirinya yang ditampilkan. Adakah yang bisa membantu saya memahami bagaimana efek ini dapat dicapai? Bukankah bangunan itu bagian dari latar belakang?
Jawaban:
Gim Ubin 2D biasanya memiliki lebih banyak lapisan yang merender dalam berbagai lapisan - sebagian merender di latar lain di atas pemain.
Bagian atap itu berada di atas pemain dan itulah mengapa pemain dapat pergi ke belakang gedung itu.
Berikut ini contoh gambar dari game saya untuk menjelaskan lebih baik:
sumber
Sementara jawaban Blodyavenger mencakup bagaimana hal itu paling mungkin dilakukan, berikut adalah kemungkinan lain yang memungkinkan pergantian perspektif yang mudah (misalnya empat atau delapan arah yang berbeda, atau beberapa level ketinggian kamera):
Pertimbangkan tampilan top-down peta Anda, mis
Di mana, katakanlah,
X
menandai pilar tinggi. Untuk setiap objek Anda menyimpan gambar dari semua perspektif yang mungkin (atau menggunakan yang sama ...), yang mungkin sewenang-wenang banyak ubin. Sekarang ketika menggambar, cukup mulai dengan kolom atau baris yang ada di belakang dalam perspektif saat ini, misalnya baris 1 jika melihat dari selatan. Setelah itu gambarlah baris / kolom paling kedua ke belakang dan seterusnya. Dengan cara ini, ketika sesuatu lebih tinggi dari satu ubin (membentang ke perspektif saat ini), itu hanya akan menarik apa yang ada di belakang.(Maaf karena tidak ada gambar yang bagus, saya tidak terlalu pandai grafis yang diterapkan ...)
sumber
Anda harus memiliki variabel kedalaman, dan gambar dengan kedalaman paling besar digambar terlebih dahulu, lalu yang lain dengan kedalaman terendah. Dan kedalaman masing-masing objek harus sama dengan negatif dari koordinat y.
Depth=-y
sumber