ฉันยุ่งกับการเขียน RPG ยุทธวิธีที่แย่จริงๆใน C ++ จนถึงขณะนี้ผมมีแผนที่กระเบื้อง 2D และเพียงแค่มีสายต่อ A * ขั้นตอนวิธีการทำงานใน pseudocode ในตามวิกิพีเดีย
แต่เกม RPG ทางยุทธวิธีตัวจริงไม่เพียงแค่ค้นหาเส้นทางที่ดีที่สุดบนระนาบราบแล้วเคลื่อนที่ไปที่นั่น โดยทั่วไปจะมีช่วงการเคลื่อนที่ที่ จำกัด และต้องปีนขึ้นหรือลง หากคุณเคยเล่น Final Fantasy Tactics สิ่งเหล่านี้จะได้รับผลกระทบจากสถิติการย้ายและกระโดด นี่คือที่ฉันหลงทาง ฉันจะเปลี่ยนอัลกอริทึม A * เพื่อให้ค้นหาเส้นทางที่ดีที่สุดไปยังเป้าหมายได้อย่างไร แต่เส้นทางนั้นมีความยาวไทล์จำนวนมากเท่านั้น ฉันควรคำนึงถึงความแตกต่างสูงและกระโดดสถิติเข้าบัญชีอย่างไร ฉันจะใช้การกระโดดข้ามช่องว่างได้อย่างไร
ถ้ามันช่วยได้ตอนนี้แผนที่ของฉันแสดงด้วยวัตถุเวกเตอร์ของไทล์ ไทล์แต่ละอันจะมีพอยน์เตอร์ไปที่ไทล์เหนือ, ใต้, ตะวันออกและตะวันตกซึ่งถูกตั้งค่าเป็น nullptr หากไม่มีไทล์อยู่ที่นั่นเช่นตามขอบของแผนที่หรือหากไทล์ถูกตั้งค่าเป็นไม่สามารถผ่านได้