在我用C#XNA編程的小型自上而下的可怕驢子外國人遊戲中,我有一些外星人和一些圍牆(等等)。我無法弄清楚的一件事是我怎樣才能引導外星人的圍牆。目前,他們像白癡一樣陷入他們的身邊,一邊滑動一邊,如果他們把另一邊戳出來,可能會達到他們的目標。XNA - 圍繞牆壁轉向
這裏是我的問題的專業說明: problem http://imageshack.com/a/img829/6545/wsf4.jpg
那麼直接,我的問題是:
- 我如何檢查是否有外星人和目標之間的牆?
- 我如何引導他們沿着最短的路線?
算法/解釋welcome,c#獎勵! :)
一些相同的假設,希望能夠便於計算: - 外星人,牆壁AABB - 牆壁總是垂直或水平
,我hapy如果必要的話:)
提供任何其他信息
搜索「A * pathfinding unity」。當我在Google上輸入時,第一個結果似乎很有希望。 –
@ChrisDunaway我的遊戲是連續的,而不是基於網格。這種解決方案意味着我不得不爲了這個算法而在我的世界上建立一個網格?如果是這樣,我可以簡單地使用vector2的座標作爲細網格嗎?如果不是,網格應該有多寬? – IamPancakeMan
您可以在想要轉向的地方定義自己的航點(許多大型遊戲使用區域而不是點數)。使用A *算法,您將連接點/區域爲您的播放器創建路徑。您可以通過檢查您是否實際上與原始直線路徑中的牆壁發生碰撞來分割A *路徑查找和常規移動之間的功能(我沒有這樣做,但我建議使用「光線跟蹤」)。因此,如果您檢測到從玩家位置到目標位置的碰撞,請使用A *查找最佳路徑,否則您只需朝該位置行走。 –