มีหลากหลายวิธีที่คุณสามารถทำได้ ฉันจะแนะนำตัวเลือก "ชัดเจนกับฉัน" แต่มีหลายรูปแบบที่สามารถออกแบบได้ ข้อจำกัดความรับผิดชอบ: ฉันไม่ได้ใช้อะไรอย่างนี้จริง ๆ
ก่อนอื่นคุณต้องมีโครงสร้างข้อมูลที่ครอบคลุมโลกของคุณ หากคุณกำลังเคลื่อนไหว NPC ในพื้นที่ 3 มิติคุณอาจมีหรือจำเป็นต้องใช้ในที่สุดโครงสร้างดังกล่าวเพื่อวัตถุประสงค์ในการค้นหาเส้นทาง - กล่าวคือตาข่ายนำทาง ดังนั้นสมมติว่าเราสามารถเพิ่มเขตข้อมูลสำหรับกลิ่นที่
แล้วเราจะใส่อะไรลงไปในสนามนั้น? ผมเสนอรายการของระเบียน ( กลิ่น , แข็งแรง , เวลา ) รายการนี้ถูกเก็บไว้ที่หรือต่ำกว่าความยาวสูงสุดและเรียงตามความแข็งแรง - ดังนั้นกลิ่นที่อ่อนแอจะถูกยกเลิก กลิ่นอาจจะมีบางสิ่งบางอย่างอย่างใดอย่างหนึ่งที่กำหนดไว้อย่างชัดเจนสำหรับแต่ละกิจการหรือนิติบุคคลประเภทหรือมันก็อาจจะเป็นประเภทกิจการ - ขึ้นอยู่กับสิ่งที่คุณต้องการที่จะสามารถที่จะติดตามอย่างเห็นได้ชัด เวลาเป็นเวลาที่บันทึกเมื่อบันทึกกลิ่นนี้ได้รับการปรับปรุงล่าสุด
เมื่อเอนทิตีผ่านพื้นที่ (เช่นสามเหลี่ยมที่กำหนดของตาข่ายนำทาง) ถึงเวลาที่จะอัพเดทรายการกลิ่น ก่อนอื่นลดจุดแข็งทั้งหมดตามจำนวนเวลาที่ผ่านไปตามค่าเวลาเทียบกับเวลาปัจจุบันการสลายตัวแบบเอ็กซ์โปเนนเชียลอาจเป็นตัวเลือกที่สมเหตุสมผล จากนั้นเพิ่มกลิ่นของเอนทิตีปัจจุบันลงในรายการอาจมีความแข็งแกร่งขึ้นอยู่กับประเภทของเอนทิตี ถ้ารายการนั้นยาวเกินไปให้ทิ้งความแข็งแกร่งต่ำสุด
หากต้องการรับผลการติดตามให้ค้นหากลิ่นในรายการของตำแหน่งปัจจุบันจากนั้นทำแบบเดียวกันกับเพื่อนบ้านทั้งหมดแล้วไปในทิศทางของกลิ่นที่แรงที่สุด (นั่นไม่ใช่ทิศทางที่ตัวติดตามมา)
สำหรับความสมจริงพิเศษ:
การแพร่กระจาย: ถ่ายโอนส่วนของกลิ่นในแต่ละตำแหน่งไปยังเพื่อนบ้าน สิ่งนี้ทำให้เกิดความสับสนในเส้นทาง แต่ก็หมายความว่าสิ่งที่อยู่นิ่งนั้นสามารถถูกดมกลิ่นออกมาได้ (การหาอาหารซากศพ ฯลฯ ) (มันเป็นประเภทที่รู้จักกันดีของ AI ในการดำเนินการกับข้อมูลประเภทนี้ทั้งหมด - แนวนอนให้ข้อมูลเกี่ยวกับวิธีที่จะไปรับทรัพยากรเฉพาะ ฯลฯ ฉันลืมชื่อของมัน) ข้อเสียเปรียบหลักคือเวลาที่ใช้ไป คำนวณการกระจายทุกที่
กลิ่นแรงควรป้องกันการตรวจจับกลิ่นอ่อน แบ่งความแรงของกลิ่นที่ต้องการโดยความแรงของกลิ่นที่แรงที่สุดและล้มเหลวถ้ามันมีขนาดเล็กเกินไป วิธีนี้อาจทำให้เส้นทางกลิ่นของคนสับสนโดยจงใจ