2013-05-16 23 views
0

我一直在尋找幾天,研究並試圖弄清楚這一點,所以我想我會發布。我有一個遊戲,其中有一系列的精靈,敵人,在玩家移動時轉向另一個精靈。然而,當敵人到達玩家時,他們將玩家的四邊堆疊成4堆。我正在尋找一種方法讓他們分散開來,所以當越來越多的精靈接近他們時,他們圍繞着他們。我想知道是否有某種運動​​算法可以幫助我做到這一點。我試圖在碰撞時隨意碰撞,或者最接近敵人的那個碰撞,但是隨後他們會在玩家的屏幕另一側聚集。我沒有檢查碰撞的問題,我只是在尋找一種方法來防止碰撞。Sprites正在凝聚在一個點上,尋找運動算法

非常感謝您的幫助!:)如果有任何問題會使問題更加清楚,請讓我知道。

回答

0

而是直接瞄準的球員,你可以讓敵人的目標周圍的玩家圈子,這樣的事情(在JS例子)隨機點:

var angle = Math.random() * 2 * Math.PI; 
var offsetX = distance * Math.cos(angle); 
var offsetY = distance * Math.sin(angle); 

目標點然後將是玩家座標加上給定的偏移量。你可以爲每個敵人計算一次,或者不時重新計算,以使其更具動態性。

爲了讓它們實際上圍繞着玩家,從一個隨機角度開始,然後使角度時間依賴。

0

在強度與它們之間的距離成反比的非玩家角色(npcs)之間添加排斥力。當他們靠得很近時,他們會變得更快。當非玩家遠離玩家時,他們對玩家的吸引力應該足以壓倒他們的相互排斥;當非常接近時,排斥效應應該占主導地位。

更具體地說,我會使用Newton's law of universal gravitation來計算npcs之間的力矢量,但是使用G的負值(調整G直到您對npcs與玩家的距離有多麼高興)。

+0

我要試試這個!這看起來像這樣可以在我的遊戲中完美運行!感謝您的快速回復! – cthatch07