對於小型2D遊戲中的尋路,我現在使用A *算法,基於簡單的歐式距離啓發式。我的遊戲世界表現爲一個細胞網格,無論是否由障礙物佔據。必須使用A *計算路徑的字符可以向任何方向移動(如果未被阻止),不僅是N/E/S/W。如何添加更多參數到A *啓發式而不僅僅是距離?
好吧,以便基本上正常工作。現在我需要向A *啓發式函數添加另一個參數,這是一個與每個網格單元格相關的成本值。這個成本值越高,我們的角色越應該儘量避免該單元格。
但是,我不能將啓發式功能更改爲單獨使用此網格單元的成本值,因爲單元與A *目標位置的距離仍然很重要。角色應儘量避免任何高成本的細胞,但同時它也不能離目標位置太遠。因此,我需要在小區距離和成本價值之間進行「折衷」。
理想情況下,我想找到一個解決方案,讓我輕鬆調整/優化單元格的距離與其成本值之間的這種關係,以便我可以微調啓發式。
任何想法如何實現這一目標?
看起來像你應該能夠增加成本的距離。如果你需要更多的權重,你可以計算成本,或乘以一個常數因子。你也可能想考慮乘以距離的成本。這假定成本是> 1.0。 – Nuclearman
@MC:謝謝,你的評論幫了我很多。沒想到它可以這麼簡單:) – Matthias