RecastNavigationDelphi
Port of Recast Navigation ke Delphi
Lokasi Kode Sumber: https://github.com/memononen/recastnavigasi
Versi Kode Sumber: Sekitar 01 Nov 2014
Pedoman Porting:
- RecastNavigationDelphi adalah klon lurus dari RecastNavigasi dengan perubahan sesedikit mungkin, untuk memungkinkan agar proyek disinkronkan di masa depan.
- Setiap perubahan/perbaikan pada fungsionalitas LIB harus pertama kali dimasukkan ke dalam master C ++ untuk menghindari pemisahan.
- RND mengikuti struktur RN dengan sangat dekat, kecuali untuk hal -hal GUI, yang merupakan VCL untuk kesederhanaan alih -alih solusi imgui rn.
- Semua nama file sama, tetapi dengan awalan "RN_".
- Beberapa unit terpecah untuk menghindari ketergantungan melingkar, mereka disebut rn_unitnamehelper.
Petunjuk tentang kode:
- Multi-condition "untuk" loop dan loop di mana iterator diubah di dalam loop, dikonversi menjadi loop while/ulangi. Kode loop perlu diulang sebelum "melanjutkan".
- Metode Pindahkan Dua Argumen Pertama (SRC, DST) perlu ditukar di Delphi.
- Delphi perlu membungkus manipulasi yang meluap dengan arahan {$ o} untuk menekan kesalahan.
- Delphi membutuhkan pembuangan objek manual yang dibuat dalam catatan, karena mereka tidak memiliki dukungan destruktor bawaan di dalamnya.
- Untuk menyederhanakan tipuan pointer, {$ pointermath ON} harus diaktifkan hampir di setiap unit.
- Pengaturan @ operator yang diketik sangat membantu, tetapi sayangnya kadang -kadang tidak berhasil.
Jebakan umum selama porting:
- Melewati argumen @somepointer , bukan somepointer . Pengetik @ membantu menangkapnya, tetapi tidak selalu.
- Metode Pintu Pindah/Film Tanpa Menukar Tempat Argumen.
- Menulis untuk .. ke .. lakukan loop bukannya untuk .. downto .. lakukan dalam kasus yang jarang.
Todos:
- Perbaiki kebanyakan kebocoran memori di sekitar kode.
- Demo Tempobstacles.
- Beberapa bagian dikomentari, menunggu untuk diangkut.
- Sinkronisasi dengan keadaan kode sumber saat ini.