2014-03-04 43 views
0

我有我的球員在屏幕上,敵人產卵良好,並朝向任何最接近的球員。然而,如果我添加一面牆,並且牆位於玩家與敵人之間,那麼敵人將留在牆上,試圖穿過它。我怎麼能這樣做,讓敵人在牆壁前回旋呢?在牆壁上操縱敵人XNA

回答

1

有許多不同的算法可用於進行這種路徑查找。在C#中查看一個A *算法的this nice example

0

你需要一些人工智能算法來幫助你的敵人操縱,這裏我不會詳細討論,但我會告訴你在哪裏看得更遠。假設你的玩家只能在地圖上的特定位置(如棋盤上的單元格),通過將地圖視爲具有節點和邊緣的圖形,然後嘗試找到2點之間的路徑,可以輕鬆解決該問題。

如果你懶得讀取算法並實現它們,一個非常簡單的方法就是讓敵人隨機「找到」它的路徑:如果它撞到了牆上,敵人會隨機選擇另一個方向繼續。它就像一個機器人,每次撞牆都會變成90度;它效率不高,但你會到達那裏。如果玩家可以在地圖中的任何地方移動(換句話說,他們的位置不侷限於單元格),您需要一些算法來考慮牆體的幾何形狀(有點像凸多邊形),並且找到每個對象周圍的最短路徑。