Evasion กระบวนการหลบหลีกเป็นสิ่งที่ตรงกันข้ามกับการไล่ล่า แทนที่จะพยายามลดระยะทางไปยังเป้าหมายเราพยายามที่จะเพิ่มมัน
ใช้เวลานานในขณะเดียวกันก็หลบเลี่ยงวัตถุหลายอย่างพร้อมกัน ฉันใช้ BFS ที่นี่ เพื่อให้เร็วขึ้นฉันควรใช้อัลกอริทึมอย่างไร
Evasion กระบวนการหลบหลีกเป็นสิ่งที่ตรงกันข้ามกับการไล่ล่า แทนที่จะพยายามลดระยะทางไปยังเป้าหมายเราพยายามที่จะเพิ่มมัน
ใช้เวลานานในขณะเดียวกันก็หลบเลี่ยงวัตถุหลายอย่างพร้อมกัน ฉันใช้ BFS ที่นี่ เพื่อให้เร็วขึ้นฉันควรใช้อัลกอริทึมอย่างไร
คำตอบ:
ฉันขอแนะนำให้คุณใช้Steering Behavioursเพื่อจำลองพฤติกรรมประเภทนี้ ดูหน้านี้สำหรับตัวอย่างของพฤติกรรมการหลีกเลี่ยงที่ดำเนินการในลักษณะนี้
แนวคิดพื้นฐานคือคุณพิจารณาคุณสมบัติที่เรียบง่ายเช่นตำแหน่งและเวกเตอร์ความเร็วของเหยื่อและนักล่าของคุณเพื่อคำนวณการเปลี่ยนแปลงที่ต้องการในคุณสมบัติเหล่านี้ในเวลาเชิงเส้น ส่งผลให้พฤติกรรมที่ตอบสนอง แต่เป็นจริง
อย่างไรก็ตามสิ่งนี้มาจากการไม่คำนึงถึงปัจจัยอื่น ๆ เช่นเป้าหมายระดับสูง (เช่นตำแหน่งของการเพิ่มพลัง) หรือตำแหน่งของสิ่งกีดขวางแบบคงที่ตามที่คุณต้องการในการค้นหาเส้นทาง สิ่งเหล่านี้สามารถนำมาพิจารณาได้โดยการรวมวิธีการควบคุมพฤติกรรมด้วยเช่นเขตข้อมูลที่มีศักยภาพ (ดูการใช้ฟิลด์ที่มีศักยภาพในสถานการณ์เกมกลยุทธ์แบบเรียลไทม์ (บทเรียน) ) หรือการค้นหาเส้นทาง (เช่นวิธีแผนที่ทางเดิน ) ในกรณีหลังคุณต้องการลดความถี่ในการอัปเดต (และเชื่อถือพฤติกรรมการหมุนเพื่อชดเชยข้อผิดพลาดใด ๆ ที่อาจเกิดขึ้นเนื่องจากสิ่งนี้) หรือทำการแทนที่บางส่วนอาจรวมกับแนวทางแบบลำดับชั้นที่มากขึ้น (เช่นNear-Optimal (HPA *)
หากคุณต้องการคำตอบที่เฉพาะเจาะจงยิ่งขึ้นให้ปรับปรุงคำถามของคุณพร้อมรายละเอียดเพิ่มเติมเกี่ยวกับปัญหาของคุณ ตัวอย่างเช่นลองอธิบายเกี่ยวกับเกมของคุณและจำนวน NPC ที่เรากำลังพูดถึง