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 :
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
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
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
...
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
    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)):
...
Merci de votre aide .