2014-05-18 5 views
0

J'ai un petit problème. J'écris un programme en Python avec Pygame, et j'ai un joueur qui se déplace avec la touche du clavier (Droite, Gauche, Saut ...). Mais, je voudrais créer une animation quand mon joueur "marche", parce que j'ai 6 images (PNG) pour le faire, mais je ne peux pas le faire. Voici mon programme:Animation de sprites en pygame

self.image = pygame.image.load(image_perso_droite).convert_alpha() 

frame_1 = pygame.image.load("images/GIF/course_6.png").convert_alpha() 

frame_2 = pygame.image.load("images/GIF/course_5.png").convert_alpha() 

frame_3 = pygame.image.load("images/GIF/course_4.png").convert_alpha() 

frame_4 = pygame.image.load("images/GIF/course_3.png").convert_alpha() 

frame_5 = pygame.image.load("images/GIF/course_2.png").convert_alpha() 

frame_6 = pygame.image.load("images/GIF/course_1.png").convert_alpha() 
self.frame_set = [frame_1, frame_2, frame_3, frame_4, frame_5, frame_6] 
self.current_frame = 0 
self.timer = time.clock() 

self.image = self.frame_set[self.current_frame] 

if droite: 

    self.xvel = 8 
    if time.clock() >= self.timer + .05 and self.onGround: 
     self.current_frame = 1 
     self.image = self.frame_set[self.current_frame] 

J'essaie aussi avec pyganim, sans succès. Merci.

+0

S'il vous plaît donner un exemple compilable autonome de votre problème. –

Répondre

0

Affectez les valeurs de clock.tick() pour que le lecteur alterne entre les images de marche.

par exemple. si vous avez deux « images de marche », vous pouvez utiliser la fonction:

def changeIMG(img): 
    if img = IMG1: 
     img = IMG2 
    else: 
     img = IMG1 

...

clock.tick(20) 
i += 1 

if i % 5 == 0: 
    changeIMG(currentIMG) 
Questions connexes