AI enemies

Tutoriel CAMEL : Créer des jeux captivants avec Pygame

An engaging Pygame tutorial showcasing game development with sprites.

Créer un sprite d'ennemi IA qui se déplace vers le joueur en utilisant Pygame

Ce guide vous guidera à travers les étapes pour créer un sprite d'ennemi IA dans Pygame qui se déplace activement vers le personnage du joueur et cause des dégâts lors d'une collision. Nous chargerons une image de sprite d'ennemi et mettrons en œuvre un mouvement vers la position du joueur.

Exigences

  • Pygame installé dans votre environnement Python.
  • Un fichier image pour le sprite d'ennemi.
  • Le code existant des étapes précédentes, où le personnage du joueur est implémenté.

Guide étape par étape

1. Importer Pygame et initialiser

Tout d'abord, assurez-vous d'initialiser Pygame et de créer la fenêtre du jeu comme montré dans des exemples précédents.

2. Charger le sprite d'ennemi

Chargez l'image pour le sprite d'ennemi en utilisant la fonction pygame.image.load(). Voici le code nécessaire :

enemy_image_path = "path/to/enemy.png"
 enemy_image = pygame.image.load(enemy_image_path)

3. Créer la classe Enemy

Créez une nouvelle classe de sprite pour l'ennemi qui gérera son mouvement et sa collision avec le joueur :

class Enemy(pygame.sprite.Sprite):
    def __init__(self, player):
        super().__init__()
        self.image = enemy_image
        self.rect = self.image.get_rect()
        self.rect.center = (200, 200)  # Position initiale de l'ennemi
        self.player = player

    def update(self):
        # Se déplacer vers le joueur
        if self.rect.x < self.player.rect.x:
            self.rect.x += 2  # Ajustez la vitesse si nécessaire
        if self.rect.x > self.player.rect.x:
            self.rect.x -= 2
        if self.rect.y < self.player.rect.y:
            self.rect.y += 2
        if self.rect.y > self.player.rect.y:
            self.rect.y -= 2

4. Instancier l'ennemi

Dans la boucle principale du jeu, créez une instance de l'ennemi et ajoutez-la aux groupes de sprites :

enemy = Enemy(player)
 all_sprites.add(enemy)

5. Détection de collision

Vérifiez les collisions entre le joueur et l'ennemi dans la boucle principale pour réduire la santé du joueur :

if pygame.sprite.collide_rect(player, enemy):
    # Code pour réduire la santé du joueur
    health -= 1  # Exemple : réduire la santé de 1

6. Mise à jour et affichage

Mettez à jour les groupes de sprites et redessinez tous les sprites ainsi que le texte nécessaire dans la boucle principale :

all_sprites.update()
 window.fill((255, 255, 255))
 all_sprites.draw(window)

7. Exemple de code complet

Voici à quoi pourrait ressembler votre boucle de jeu complète avec l'ennemi implémenté :

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Déplacer le sprite du joueur en fonction des entrées utilisateur
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]: player.rect.x -= 5
    if keys[pygame.K_RIGHT]: player.rect.x += 5
    if keys[pygame.K_UP]: player.rect.y -= 5
    if keys[pygame.K_DOWN]: player.rect.y += 5

    # Vérifiez les collisions
    if pygame.sprite.collide_rect(player, enemy):
        health -= 1  # Gérer la réduction de la santé

    # Mettre à jour et dessiner les sprites
    all_sprites.update()
    window.fill((255, 255, 255))
    all_sprites.draw(window)
    pygame.display.update()

Conclusion

Vous avez réussi à implémenter un ennemi IA de base qui suit le joueur et cause des dégâts lors d'une collision. Cela ajoute une dynamique passionnante au jeu et peut être étendu davantage avec d'autres types d'ennemis ou de comportements.

Étapes suivantes

  • Envisagez d'ajouter différents ennemis avec des comportements variés.
  • Implémentez la santé du joueur et les conditions de game over.
  • Introduisez des power-ups pour améliorer le gameplay.

En lire plus

A tutorial on generating images using Stable Diffusion.
An example of creativity using Flux.1 image generation tool.

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés.

Ce site est protégé par hCaptcha, et la Politique de confidentialité et les Conditions de service de hCaptcha s’appliquent.