Saya bermain-main dengan menulis RPG taktis yang benar-benar buruk di C ++. Sejauh ini saya memiliki peta ubin 2D dan baru saja mendapatkan algoritma A * yang bekerja berdasarkan pseudocode di wikipedia .
Tetapi RPG taktis yang sebenarnya tidak hanya menemukan jalur terbaik pada bidang datar dan pindah ke sana. Mereka biasanya memiliki rentang pergerakan terbatas dan harus naik atau turun. Jika Anda pernah memainkan Final Fantasy Tactics, ini akan dipengaruhi oleh statistik Move and Jump. Di sinilah saya tersesat. Bagaimana cara mengubah algoritme A * sehingga menemukan jalur terbaik menuju target, tetapi jalur tersebut panjangnya hanya beberapa ubin? Bagaimana saya harus memperhitungkan perbedaan ketinggian dan memasukkan statistik? Bagaimana cara menerapkan melompati celah?
Jika itu membantu, sekarang peta saya diwakili oleh objek Vector of Tile. Setiap ubin memiliki pointer ke ubin Utara, Selatan, Timur, dan Barat, yang diatur ke nullptr jika tidak ada ubin yang ada di sana, seperti di sepanjang tepi peta atau jika ubin diatur ke tidak dapat dilewati.