Bonjour a toutes et a tous,
J'ai une premier classe qui hérite de pygame.sprite.Sprite et utilise le conteneur Group avec la méthose add() en autre :
Et une autre classe qui utilise une liste pour stocker les objets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class Explose(pygame.sprite.Sprite): # Explosions enemyspaceship burn = False def __init__(self, x, y, file, scale_x=0, scale_y=0, range_number=5, explose_spped=5): super().__init__() self.images = [] for num in range(range_number): img = pygame.image.load(f"data/{file}/{file}{num}.png").convert_alpha() img = pygame.transform.scale(img, (scale_x, scale_y)) self.images.append(img) self.index = 0 self.image = self.images[self.index] self.explose_mask = pygame.mask.from_surface(self.image) self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y self.counter = 0 self.explose_speed = explose_spped
Est il possible de gérer les collisions entre ces 2 classes en utilisant quelque chose de ce genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class spaceship(): def __init__(self): self.image = pygame.image.load('spaceship0.png').convert_alpha() self.spaceship_mask = pygame.mask.from_surface(self.image) self.rect = self.image.get_rect() self.rect.x = 50 self.rect.y = 350 ...
Merci de votre aide .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for d in hero_list: for e in explose_group: offset_x = h.rect.x - e.rect.x offset_y = h.rect.y - e.rect.y if e.explose_mask.overlap(h.spaceship_mask, (offset_x, offset_y)): ...
Partager