Introduction
Dans la suite de notre développement, nous allons ajouter des ennemis que le joueur doit combattre, gérer les collisions entre les projectiles et les ennemis, et mettre en place un système de score pour récompenser le joueur lorsqu’il détruit un ennemi.
1. Ajouter des ennemis dans le jeu
Les ennemis seront représentés par des sprites qui descendent depuis le haut de l’écran. Voici comment créer un ennemi basique.
class Ennemi(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((40, 30))
self.image.fill((255, 0, 0)) # Ennemi rouge
self.rect = self.image.get_rect()
self.rect.x = random.randint(0, screen_width - self.rect.width)
self.rect.y = random.randint(-100, -40)
self.vitesse_y = random.randint(2, 6)
def update(self):
self.rect.y += self.vitesse_y
if self.rect.top > screen_height:
self.rect.x = random.randint(0, screen_width - self.rect.width)
self.rect.y = random.randint(-100, -40)
self.vitesse_y = random.randint(2, 6)
Chaque ennemi se déplace de haut en bas. S’il sort de l’écran, il est repositionné au-dessus pour continuer à apparaître.
2. Gérer les collisions entre les projectiles et les ennemis
Nous devons maintenant détecter quand un projectile touche un ennemi. Nous utilisons la méthode pygame.sprite.groupcollide()
pour gérer cela.
# Détecter les collisions entre projectiles et ennemis
collisions = pygame.sprite.groupcollide(projectiles, ennemis, True, True)
for collision in collisions:
score += 10 # Ajouter 10 points pour chaque ennemi détruit
Cette fonction supprime à la fois le projectile et l'ennemi lorsqu’une collision est détectée. Nous ajoutons également un système de score pour récompenser le joueur.
3. Boucle de jeu avec ennemis
Mettez à jour la boucle de jeu pour ajouter les ennemis et gérer les collisions.
# Groupes de sprites
ennemis = pygame.sprite.Group()
# Créer des ennemis
for i in range(8):
ennemi = Ennemi()
all_sprites.add(ennemi)
ennemis.add(ennemi)
# Boucle de jeu
running = True
while running:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
joueur.tirer()
# Mettre à jour les sprites
all_sprites.update()
# Détecter les collisions
collisions = pygame.sprite.groupcollide(projectiles, ennemis, True, True)
for collision in collisions:
score += 10
# Afficher les éléments
screen.fill((0, 0, 0))
all_sprites.draw(screen)
pygame.display.flip()
pygame.quit()
Conclusion
Dans cet article, nous avons ajouté des ennemis au jeu, géré les collisions entre les projectiles et les ennemis, et mis en place un système de score pour rendre le jeu plus interactif. Dans le prochain article, nous allons améliorer les graphismes, ajouter des boss et des effets spéciaux.