Cours S5 Jeux Python

Dégats et barre de vie

Nous avons vu les enemis précédement. Dans ce cours, vous allez apprendre  comment programmer des dégats et barre de vie !

I. Barre de vie

 

TEXTE Pour pouvoir coder une barre de vie au dessus de la tête de vos enemis, il vas falloir aller dans votre classe Enemy en dessous de __init__:

def health_bar(self):
health_color = (111, 210, 46)

Ici vous définisser la couleur (R,G,B). Puis, pour l’épaisseur:

health_position = [self.rect.x, self.rect.y, self.health, 5]

Ainsi, rect.x/y permet de suivre le joueur, heath permet de réduire la barre, et 5 détermine l’épaisseur.

Ensuite, il faut la déssiner. Pour cela, on ajoute un argument barre et : 

def health_bar(self, barre):
health_color = (111, 210, 46)
health_position = [self.rect.x, self.rect.y, self.health, 5]
pygame.draw.rect(barre, health_color, health_position)

Tips: Si vous souhaitez replacer la barre de vie, vous pouvez ajouter ou enlver des pixels tel que:

health_position = [self.rect.x + 20, self.rect.y – 30, …..

 

II. Appliquer la barre en jeux:

On se rendra donc dans main. Puis dans:

for enemy in game.all_enemy:
enemy.forward()

Vous ajouter:

for enemy in game.all_enemy:
enemy.forward()
enemy.health_bar(sbkg)

 

III. Dégats

Pour gérer les dégats de l’enemis, vous irez dans votre class Enemy et :

def damage(self, amount):
self.health -= amount
if self.health <= 0:
self.rect.x = 1000
self.health = self.max_health

Ici vous définissez les domage et si votre enemis n’as plus de vie, il retourne de l’autre coté de votre écrans. Comme un respawn. Puis vous vous rendrez dans la class projectils, votre méthode move et vous changer la ligne:

if self.player.game.check_meet(self, self.pla .....

en:

for enemy in self.player.game.check_meet(self, self.pla

Puis vous définissez vos points d’attaque:

enemy.damage(self.player.attack)

 

IV. Importer d’autre monstre:

 Vous pouvez ajouter autant de monstre que vous le souhaitez en copiant collant la ligne:

self.spawn_enemy()

dans class mainG dans votre fichier game ! Pour qu’ensuite, le jeux soit jouable, on ajoutera une position de spawn aléatoire.

Dans votre fichier enemis :

import random

Puis dans __init__ ajouter:

self.rect.x = 1000 + random.randint(0, 300)

Et dans votre méthode def damage:

if self.health <= 0:
self.rect.x = 1000 + random.randint(0, 300)

Tips: Vous pouvez évidement rendre aléatoire la vitesse, la vie et les dégats avec cette méthode !

 

V. Vie du joueur:

Pour cela, copier la méthode:

def health_bar(self, barre):
health_color = (111, 210, 46)
health_position = [self.rect.x, self.rect.y, self.health, 5]
pygame.draw.rect(barre, health_color, health_position)

Et coller la dans player comme méthode.

Puis dans le fichier main.py dans while window ajoutez:

game.player.health_bar(sbkg)

Ensuite, nous allons créer une méthode damage pour player:

def damage(self, amount):
if self.health - amount > amount:
self.health -= amount

Et dans la méthode forward dans la class Enemy, ajoutez:

else:
self.game.player.damage(self.attack)

Bien joué !!!