Saya ingin dapat melakukan apa yang Anda lihat dalam gambar, tetapi dengan satu dinding. Pemain harus bisa berjalan di kedua sisi objek yang sama . Yaitu, dinding yang sama ada di bawah pahlawan ketika saya turun darinya, dan itu di atas pahlawan jika saya datang dari atas itu.
Ini seperti dua kedalaman di dinding yang sama, jadi ini bukan hanya masalah menggambar sebelum atau sesudahnya. Saya dapat memotong objek menjadi dua, tetapi itu akan menjadi solusi yang mudah (dan mungkin mahal secara komputasi). Bagaimana saya harus melakukan ini?
2d
draw-order
depth
Xkynar
sumber
sumber
Jawaban:
Inilah tiga cara untuk melakukannya. Yang mana yang cocok tergantung pada jenis permainan yang Anda buat.
Sebagai pengguna Fabinout sudah berkomentar: "Membagi objek menjadi dua ... Bagian atas berada di belakang karakter, dan bagian bawah adalah antara pemain dan karakter." Jika Anda membuat game berbasis ubin yang kaku (jalur yang ditampilkan adalah satu-satunya jalan yang mungkin dekat dinding), ini mungkin cara yang baik untuk melakukannya. Perhatikan bahwa agar ini berfungsi, jarak antara jalur atas dan bawah harus setidaknya sama tingginya dengan karakter.
Kelemahan dari metode ini adalah hanya membantu kasus seperti ini; itu bukan strategi umum untuk menumpuk sprite.
Gambarlah semua sprite - baik pemain dan pemandangan - dari atas ke bawah sesuai dengan posisi "permukaan tanah" mereka (dasar dinding, kaki pemain). Ini akan secara otomatis menyebabkan dinding ditampilkan di sisi yang benar, dan merupakan strategi umum untuk gim bergaya “isometrik” dan “2D RPG”.
Keuntungan lain dari ini adalah bahwa itu umumnya terlihat baik bahkan jika benda saling melewati - misalnya karakter yang tidak menghalangi gerakan orang lain; berjalan melalui padang rumput yang tinggi. Kerugiannya adalah Anda perlu menentukan urutan gambar (misalnya mengurutkan sprite Anda, atau memiliki array 2D ubin yang mengetahui sprite apa yang ada di dalamnya) dan menjadi rumit ketika Anda memiliki objek yang tidak semuanya berakar secara visual pada permukaan tanah yang sama.
Memiliki "lapisan depan" dan "lapisan belakang" di mana karakter Anda menempati satu atau yang lain (dan dinding digambar setelah kembali tetapi sebelum depan). Tergantung pada bagaimana Anda mendekati dinding, karakter akan dialihkan ke lapisan depan atau belakang oleh zona pemicu. Beginilah cara permainan Sonic the Hedgehog menangani hal-hal seperti loop-the-loop.
Keuntungannya adalah pada dasarnya Anda dapat memiliki dua pesawat 2D independen untuk membangun elemen level Anda. Namun, ini lebih tepat untuk gim di mana gerakan vertikal melonjak, sedangkan dari bentuk grafik Anda, gim Anda tampaknya merupakan gim di mana gerakan di layar vertikal bergerak maju / mundur di tanah, dan ada jauh lebih banyak dari dua posisi berbeda di dimensi itu.
sumber
Gambarlah objek sesuai dengan
Y
nilainya, sehingga objek "lebih jauh" (lebih tinggi di layar) ditarik sebelum / di bawah objek "lebih dekat". Sesederhana itu.Secara lebih umum, berikan objek nilai kedalaman (yang mungkin secara implisit berdasarkan
Y
atau secara eksplisit diatur, tergantung pada game dan kebutuhan) dan render dalam urutan itu.Ini adalah "algoritma pelukis" di tempat kerja.
sumber