2017-04-20 86 views
1

我對編程相當陌生,只是想知道在java遊戲中產生避免重疊的物體的最佳方法或快速方法。生成不重疊的隨機物體

我有一個陣列的小坑,我想隨機放置在關卡上。對於在屏幕上畫圖像的代碼中,我目前擁有的是:

// Initialise all Spike Pits 
    for (int k = 0; k < NUMBER_OF_SPIKEPITS; k++) { 
     spikepitX = rand.nextInt(3600) + (thePlayer.getX() + 20); //will ensure that the spike pit cannot spawn under the player start position 
     spikepitY = (GroundLevel - 33); 

     spikepit[k] = new SpikePit(spikepitX, spikepitY); 
    } 

    init(); 

這將它們打印在沿着地面的水平寬度隨機分,但他們中的一些重疊。有什麼我可以添加,以防止這種情況?

+0

是否[此](http://stackoverflow.com/questions/16000196/java-generating-non-repeating-random-numbers)有幫助嗎? – jrook

+0

如果您打算依靠僞隨機數生成,只考慮玩家不在的座標範圍。否則,你將不得不連續生成一個座標並檢查它是否有效。 –

回答

-1

您可以將spikepitX添加到列表中,然後檢查您的新spikepitX是否可用於此,如果是,則再次獲取另一個spikepitX然後再次檢查。