Ich bin ziemlich neu in der Programmierung und fragte mich nur die beste oder eine schnelle Möglichkeit, ein Objekt zu spawnen Überlappung in einem Java-Spiel zu vermeiden.Spawn zufällige Objekte ohne Überlappung
Ich habe eine Reihe von Spike-Pits, die ich zufällig auf dem Level platzieren möchte. Der Code, den ich habe zur Zeit für die Malerei des Bildes auf dem Bildschirm ist:
// 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();
Dieser druckt sie an zufälligen Punkten entlang des Bodens für die Breite der Ebene, aber einige von ihnen überlappen. Kann ich etwas hinzufügen, um dies zu verhindern?
Hilft dies [http://stackoverflow.com/questions/16000196/java-generating-non-repeating-random-numbers]? – jrook
Wenn Sie sich auf die Pseudozufallszahlengenerierung verlassen möchten, berücksichtigen Sie nur den Koordinatenbereich, in dem sich der Player nicht befindet. Andernfalls müssen Sie kontinuierlich eine Koordinate generieren und prüfen, ob sie gültig ist. –