2017-04-20 2 views
1

Je ne suis pas habitué à la programmation et je me demandais juste comment créer un objet ou un moyen rapide de générer un objet en évitant le chevauchement dans un jeu java.Apparition d'objets aléatoires sans chevauchement

J'ai un tableau de pics que je veux placer au hasard sur le niveau. Le code que j'ai actuellement pour peindre l'image sur l'écran est:

// 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(); 

Cela leur imprime à des points aléatoires le long du sol pour la largeur du niveau, mais certains d'entre eux se chevauchent. Y a-t-il quelque chose que je puisse ajouter pour l'empêcher?

+0

Est-ce que [this] (http://stackoverflow.com/questions/16000196/java-generating-non-repeating-random-numbers) aide? – jrook

+0

Si vous comptez vous fier à la génération de nombres pseudo-aléatoires, tenez compte uniquement de la plage de coordonnées où le lecteur n'est pas situé. Sinon, vous devrez générer une coordonnée en continu et vérifier si elle est valide. –

Répondre

-1

Vous pouvez ajouter spikepitX à une liste, puis vérifiez si votre nouveau spikepitX est disponible dans ceci ou pas, si oui alors obtenez un autre spikepitX puis vérifiez à nouveau.