Java 生成不重叠的随机对象

Java 生成不重叠的随机对象,java,object,overlap,spawn,Java,Object,Overlap,Spawn,我对编程相当陌生,只是想知道在java游戏中生成对象避免重叠的最佳或快速方法 我有一系列的刺坑,我想在关卡上随机放置。我目前在屏幕上绘制图像的代码是: // Initialise all Spike Pits for (int k = 0; k < NUMBER_OF_SPIKEPITS; k++) { spikepitX = rand.nextInt(3600) + (thePlayer.getX() + 20); //will ensure that t

我对编程相当陌生,只是想知道在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();
//初始化所有尖峰坑
对于(int k=0;k<尖峰坑数;k++){
spikepitX=rand.nextInt(3600)+(thePlayer.getX()+20);//将确保spikepitX不能在玩家起始位置下生成
地面标高=(地面标高-33);
spikepit[k]=新的spikepit(spikepitX,spikepit);
}
init();

这将沿标高宽度沿地面随机点打印它们,但其中一些重叠。有什么我可以添加的来防止这种情况吗?

您可以将spikepitX添加到列表中,然后检查您的新spikepitX是否在此列表中可用,如果是,则获取另一个spikepitX,然后再次检查。

是否有帮助?如果您计划依赖伪随机数生成,只考虑玩家不在的坐标范围。否则,必须连续生成坐标并检查其是否有效。