NameError: ma variable n'est pas définie ?
Bonjour a toutes et a tous ,
Je sollicite votre aide pour quelque chose sur lequel je bloque .
Voici ma classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| import pygame
#creer une classe qui s'occuper des animations
class AnimateSprite(pygame.sprite.Sprite):
#definir les choses a faire a la creation de l'entité
def __init__(self,sprite_name):
super().__init__()
self.image = pygame.image.load(f'assets/{sprite_name}.png')
#commence l'anim a image 0
self.current_image = 0
self.images = animations.get(sprite_name)
#definir une methode pour animer le sprite
def animate(self):
#passer a l'image suivante
self.current_image += 1
#verifier si on atteint la fin de l'animation
if self.current_image >= len(self.images):
#remettre l'anim au depart
self.current_image = 0
#actualiser l'image precedente par la suivante
self.image = self.images[self.current_image]
def load_animation_images(sprite_name):
#charger les 24 images du sprite dans le dossier
images = []
#recuperer le chemin du dossier pour ce sprite
path = f"assets/{sprite_name}/{sprite_name}"
#boucler sur chaque image dans ce dossier
for num in range(1,24):
image_path = path + str(num)+ '.png'
images.append(pygame.image.load(image_path))
#renvoyer le contenu de la liste d'images
return images
#definir un dictionnaire qui va contenir les images chargées
#de chaque sprite
animations = {
'mummy': load_animation_images('mummy')
} |
Lorsque je lance mon main.py , j'ai ce message :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| chris@chris:~/Bureau/Sauvegarde/copie3$ python3 main.py
pygame 2.0.1 (SDL 2.0.14, Python 3.8.10)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "main.py", line 73, in <module>
game.start()
File "/home/chris/Bureau/Sauvegarde/copie3/game.py", line 24, in start
self.spawn_monster()
File "/home/chris/Bureau/Sauvegarde/copie3/game.py", line 83, in spawn_monster
monster = Monster(self)
File "/home/chris/Bureau/Sauvegarde/copie3/monster.py", line 8, in __init__
super().__init__("mummy")
File "/home/chris/Bureau/Sauvegarde/copie3/animation.py", line 12, in __init__
self.images = animations.get(sprite_name)
NameError: name 'animations' is not defined
chris@chris:~/Bureau/Sauvegarde/copie3$ |
Cela doit etre evident pour vous , mais je ne vois pas ou j'ai fauté . Peut etre une indentation ?
D'avance , merci de votre aide