2012-05-07 66 views
0

我是一名C#退伍軍人,從未做過遊戲。爲了擴大我的視野,我開始自學基本的XNA,試圖製作一個簡單的2D迷宮類型的遊戲,其中涉及一些典型的敵方射擊。我的問題涉及尋找多個敵人。在遊戲中隨機化AI尋路

考慮一下典型的例子:Pacman。

當你在Pacman中開始一輪時,幽靈會從盒子裏出來,採取不同的表面上隨機的路徑,但有一個例外 - 他們重點是找到玩家的當前位置。我認爲每次玩家移動時都可以重新計算每個敵人的路徑以獲得類似的效果,但我不希望敵人過多地重疊路徑,所以我需要隨機扭曲每條計算出的路徑以給予某種程度的唯一性敵人。有沒有一個標準的方法呢?

我想我可以看看它,因爲每個敵人本身就是一個障礙,因此沒有敵人的路徑可能會涉及到一條路線,可能會與另一個敵人相撞。如果沒有新的路徑可以向玩家展示自由奔跑,我會讓敵人繼續其現有路徑,直到找到可行的路徑或碰撞改變當前路徑。這可能夠用了,但是我是不是太簡化了?

回答

0

有趣的想法,但它可能 - 對於簡單的Packman示例 - 導致一些敵人無法找到路徑。例如,如果packman在右下角,他只能向北或向西。如果每條路線上都有敵人,則其他敵人無法找到通向他的路徑,並且會無目標地凍結或漫遊。

也許讓敵人比遊戲中真正的障礙物更低的「重量」將允許他們仍然找到一條路徑,併爲包裝員吃掉動力彈丸時提供那麼一個令人滿意的時刻,並且有幾個幽靈在一排狼吞虎嚥。

+0

是的,我想過後,我張貼。我想在沒有最佳路徑的情況下,我必須從候選人名單中隨機挑選一個。如果說到這一點,敵人之間的碰撞就會導致路徑的改變。 – Chris

1

也許你發現潛在領域接近有用...

http://aigamedev.com/open/tutorials/potential-fields/

每個敵人都有積極的勢場和球員有一個負電位場,如果您填寫的地圖,你可以得到一個是敵人不會因爲相同的簽名費用而重疊太多......當然,算法具有重要性......但也許可以幫助你。

enter image description here

0

我會概率接近它..

也許是這樣,如果路A需要20個步驟和方式B,需要30步,然後怪物會路A中的60%的時間和B方式中的40%。然後添加一些規則,確保如果路線比其他路線多出20%以上,怪物總是會採取特定路線。

這樣會造成怪物總是以最接近的方式如果他們足夠接近,採取不同的方式在開放地區,並採取不同的方式,誰需要幾乎一樣長的時間在遠距離...

然後你需要添加一些方法來過濾出最奇怪的行爲,以刪除認爲像改變方向沒有理由,並配置實際的數字公式:)(順便說一句,這是沒有測試只是猜測)..