我正在嘗試在Javascript中創建一個塔防遊戲。mass astar尋路
這一切都從尋路順利開..
我使用本網站的愛仕達代碼:http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript它使用二進制堆(我認爲這是相當最佳)
這個問題我我的意思是我想讓人們阻止「攻擊者」的路徑。這意味着每個「攻擊者」都需要能夠自己找到通往出口的路(因爲有人可能會切斷一個「攻擊者」,並且需要找到自己的出口路徑)。現在5/6攻擊者可以在任何時候查找任何問題。但是說路徑被10個以上的攻擊者阻擋,所有10個攻擊者需要同時射擊它的尋路腳本,這會使FPS下降到每秒1/2左右。
對任何在任何時候都有很多實體尋路的人來說,這肯定是一個常見問題,所以我想必須有比我的方法更好的方法。
所以我的問題是:什麼是以最有效的方式實現質量尋路算法到多個「機器人」的最佳方式。
感謝,
詹姆斯
它看起來像'findGraphNode'在該代碼需要線性時間,而應該採取一定的時間(利用哈希表),因此實施遠非最佳。 – 2012-04-12 10:08:52
我會看看如果我能加快一點點。但我認爲,即使採用更高效的路徑發現方式,如果我嘗試查找漫遊器,我仍會以較慢的幀率結束。我開始認爲我最好的選擇是實際每幀尋路一次,然後設置一個方向在每個可通過的塊上讓機器人遵循。 – james 2012-04-12 10:20:14
@james如果這是類似大多數塔防的東西,大概有一個屏幕價值的地圖和沒有複雜的collisons(即機器人不會彼此碰撞或其他移動的物體,或你分開處理)然後是的我會認爲整個地圖的計算路徑是最好的。事實上,你甚至可能不必每幀重新計算整個地圖。如果您在構建算法時非常小心,則應該能夠確定哪些節點受到用戶更改的影響,並僅從這些節點重新計算「上游」。聽起來不錯! – Tim 2012-04-12 17:11:14