2017-04-20 5 views
1

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?

+0

Hilft dies [http://stackoverflow.com/questions/16000196/java-generating-non-repeating-random-numbers]? – jrook

+0

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. –

Antwort

-1

Sie können spikepitX zu einer Liste hinzufügen, dann überprüfen Sie, ob Ihr neues spikepitX in diesem Fall verfügbar ist oder nicht, wenn ja, dann holen Sie sich ein weiteres spikepitX und gehen Sie dann erneut.

Verwandte Themen