我試圖做一個遊戲,玩家只可以向前走在無邊的地圖和路徑(其中像點只是事情,路徑是唯一的視覺)的程序產生的。我希望這些路徑具有不同的長度(something like the tree of life,但僅生成所選路徑的分支)。如何隨機放置物體作爲玩家在無限地圖中移動而不重疊?
我這是怎麼產生的分支無重疊:
List<Vector3> everyPos; //predetermined position
public void Spawn(int amount)
{
List<Vector3> possiblePos = new List<Vector3>(everyPos);
for (int i = 0; i < amount; i++)
{
int index = Random(0, possiblePos.Count); //Find a random position
SpawnObjectAt(currentPosition+possiblePos[index]));//Create a point there
possiblePos.RemoveAt(index); //Remove that position from the list
}
}
的問題是,look at this image(I can't embed image yet):
紅色是這裏的球員開始,綠色是在第一個可能的產卵位置移動。
如果有在1和2催生了2點,玩家選擇point1
,然後在第二次可能的位置將在黑色區域,其中包括點2點,所以如果我堅持下去就會有最終重疊。
我該如何避免這種情況?我正在製作手機遊戲,所以我不想緩存每一個點。任何幫助將非常感激!謝謝!
這是一個小型的網頁遊戲有幾分相似機械師什麼,我試圖實現:newgrounds.com/portal/view/592325/
您使用哪種語言?你能否包括一些代碼或一些圖像來解釋你的意思? – bigcodeszzer
我使用C#,但任何語言都很好,實際上我不需要任何代碼,只是一個方向。關於圖片我在上面添加了一張圖片,並且一個簡單的遊戲只需要一分鐘就可以嘗試 – leloctai
我玩過這個遊戲,但是我沒有看到您的路徑重疊是什麼意思,但是如果您想生成一個路徑'像',它不應該太難。 – bigcodeszzer