Saya berharap kita semua memainkan Zelda: A Link to the Past, tolong perbaiki saya jika saya salah, tapi saya ingin meniru gerakan karakter 2D top-down dengan sentuhan koreksi. Ini sudah dilakukan di gim lain, tapi saya merasa referensi ini akan menjadi yang paling mudah untuk dihubungkan. Lebih khusus lagi jenis gerakan dan koreksi yang saya bicarakan adalah:
- Gerakan melayang tidak terbatas pada gerakan berbasis ubin seperti Pokemon dan permainan lain di mana satu ketukan bantalan gerakan menggerakkan Anda satu kotak ke arah kardinal itu. Gerakan mengambang ini harus dapat mencapai gerakan diagonal.
- Jika Anda berjalan ke Barat dan sampai ke dinding yang diagonal dengan gaya Timur Laut / Barat Daya, Anda dikoreksi menjadi gerakan Barat Daya bahkan jika Anda terus memegang kiri (Barat) pada pengontrol. Ini harus bekerja untuk kedua diagonal mengoreksi di kedua arah.
- Jika Anda beberapa piksel off dari berjalan tepat ke pintu atau lorong, Anda dikoreksi menjadi berjalan melalui lorong atau menyusuri lorong, yaitu menabrak sudut menyebabkan Anda didorong ke lorong / pintu.
Saya sudah mencari cara yang efisien untuk mencapai ini dan tidak beruntung. Untuk lebih jelasnya saya berbicara tentang gerakan karakter manusia, bukan gerakan NPC. Apakah sumber daya mereka tersedia pada gerakan semacam ini? Persamaan atau algoritma dijelaskan pada wiki atau sesuatu?
Saya menggunakan Kerangka XNA, apakah ada sesuatu di dalamnya untuk membantu dengan ini?
Sebagai jawaban yang mungkin untuk titik kedua adalah memproyeksikan vektor gerakan pemain di sepanjang vektor dinding menggunakan produk titik (ab * dinormalisasi (b)). Anda kemudian mendapatkan vektor yang memberi tahu Anda seberapa jauh untuk memindahkan pemain ke arah dinding, dan jika Anda memindahkan pemain dengan vektor itu, Anda mendapatkan 'slide' di sepanjang dinding. Bekerja dengan baik untuk saya dalam proyek game sebelumnya.
sumber
Jawaban yang bagus untuk Josh, tetapi saya akan menambahkan beberapa saran: - Untuk info lebih lanjut tentang meluncur di dinding, lihat pertanyaan saya - dari jawaban ini saya berhasil membuatnya bekerja dengan sangat baik. - Jika saya tidak salah, saat berjalan layar Link akan mudah untuk menyelaraskan ke seluruh kotak persegi horisontal terdekat. Dengan cara ini ketika Anda sampai ke pintu Anda lebih mungkin untuk berbaris dengan benar (mungkin salah). - Agar mudah melewati pintu, pastikan kotak tumbukan karakter Anda jauh lebih kecil dari lebar pintu.
sumber
Untuk koreksi memasuki pintu, Anda bisa membuat objek tabrakan untuk pintu sedikit lebih besar dari gambar pintu. Ini akan menghasilkan efek yang sama yang diusulkan oleh Josh, tetapi tanpa harus menghitung kedekatan dengan persegi panjang tabrakan dinding.
sumber