recastNavigationDelphi
พอร์ตการนำทางใหม่เข้าสู่ Delphi
ซอร์สโค้ดที่ตั้ง: https://github.com/memononen/recastnavigation
เวอร์ชันซอร์สโค้ด: ประมาณ 01 พ.ย. 2014
แนวทางการพอร์ต:
- RecastNavigationDelphi เป็นโคลนตรงของการ recastnavigation ด้วยการเปลี่ยนแปลงเพียงเล็กน้อยที่สุดเท่าที่จะเป็นไปได้เพื่อให้โครงการซิงค์ในอนาคต
- การเปลี่ยนแปลง/การปรับปรุงฟังก์ชัน LIB ควรรวมอยู่ใน C ++ Master ก่อนเพื่อหลีกเลี่ยงการแยก
- RND ติดตามโครงสร้าง RN อย่างใกล้ชิดยกเว้นสิ่ง GUI ซึ่งเป็น VCL เพื่อความเรียบง่ายแทนที่จะเป็นโซลูชัน Imgui RN
- ชื่อไฟล์ทั้งหมดเหมือนกัน แต่มีคำนำหน้า "RN_"
- บางหน่วยถูกแยกออกเพื่อหลีกเลี่ยงการพึ่งพาเป็นวงกลมพวกเขาเรียกว่า rn_unitnamehelper
คำแนะนำเกี่ยวกับรหัส:
- หลายเงื่อนไข "สำหรับ" ลูปและลูปที่ตัววนซ้ำได้รับการเปลี่ยนแปลงภายในลูปถูกแปลงเป็นในขณะที่/ซ้ำลูป ต้องใช้รหัสลูปซ้ำก่อนที่จะ "ดำเนินการต่อ"
- วิธีย้ายวิธีการสองข้อโต้แย้งแรก (SRC, DST) ต้องเปลี่ยนใน Delphi
- Delphi จำเป็นต้องห่อหุ้มการจัดการที่ล้นด้วยคำสั่ง {$ o} เพื่อแก้ไขข้อผิดพลาด
- Delphi ต้องการการกำจัดวัตถุที่สร้างขึ้นภายในบันทึกด้วยตนเองเนื่องจากไม่มีการสนับสนุนการทำลายล้างในตัว
- เพื่อลดความซับซ้อนของกลอุบายของตัวชี้ {$ pointermath on} จะต้องเปิดใช้งานเกือบทุกหน่วย
- การตั้งค่าผู้ให้บริการที่พิมพ์แล้วเป็นความช่วยเหลือที่ดี แต่น่าเศร้าที่มันไม่ได้ผลบางครั้ง
ข้อผิดพลาดทั่วไปในระหว่างการพอร์ต:
- ผ่านอาร์กิวเมนต์ @SomePointer แทน somepointer พิมพ์ @ ช่วยจับสิ่งเหล่านั้น แต่ไม่เสมอไป
- การเรียกใช้วิธี การย้าย/การเติม โดยไม่ต้องแลกเปลี่ยนข้อโต้แย้ง
- เขียน สำหรับ .. ถึง .. ทำ ลูปแทน .. ลงไป .. ทำ ในบางกรณี
Todos:
- แก้ไขการรั่วไหลของหน่วยความจำรอบ ๆ รหัส
- การสาธิต Tempobstacles
- บางส่วนได้รับการแสดงความคิดเห็นรอการพอร์ต
- ซิงค์กับสถานะปัจจุบันของซอร์สโค้ด