Je suis actuellement en pleine programmation d'un jeux en python pour mes cours.
TOPO sur le jeux :
C'est un simple beat them up, où le joueur est un vaisseau qui doit détruire le maximum d'astéroïde en 25 sec !
bref ,
Mon problème :
Je dois généré des astéroïde aléatoirement, du coup j'utilise la fonction randrange de random à ce niveau là pas de problème. Mon soucis est que parfois les astéroïde se génèrent les un sur les autres (cf screen)
J'aurais aimé avoir genre quelques pixel d'écart entre les astéroïde histoire que ça ne fasse pas cochon ..
voici le bout de code qui les génèrent :
class Asteroid(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load('mine.png').convert_alpha()
self.rect = self.image.get_rect()
def update(self):
self.rect.x -= 1
for i in range(10):
asteroid = Asteroid()
asteroid.rect.x = random.randrange(800,1000)
asteroid.rect.y = random.randrange(100,400)
asteroid_list.add(asteroid)
sprites_list.add(asteroid)
Bonjour, Il faut que tu fasses une "liste" avec tous tes objets Asteroid contenant leurs coordonnées en x et en y.
Et comme ça après le randrange tu fais une boucle for sur la lite contenant les objets déjà existant et tu testes si la distance du nouvel Asteroid est supérieur à une certaine distance D de tous les autres Asteroid si ce n'est pas le cas tu rappelles randrange afin d'avoir des nouvelles coordonnées.
Dac la logique y est, je test cela cette après-midi merci.
:)
RerePhP a écrit:
Bonjour, Il faut que tu fasses une "liste" avec tous tes objets Asteroid contenant leurs coordonnées en x et en y.
Et comme ça après le randrange tu fais une boucle for sur la lite contenant les objets déjà existant et tu testes si la distance du nouvel Asteroid est supérieur à une certaine distance D de tous les autres Asteroid si ce n'est pas le cas tu rappelles randrange afin d'avoir des nouvelles coordonnées.
Je pense que c'est le plus simple.
[HELP] Pygame !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.