Las siguientes funciones de la clase personaje mueven y realizan la animacion de movimiento del personaje:
- Código: Seleccionar todo
 def animar(self, n):
 self.frame_num += 1
 pygame.time.delay(35)
 if self.frame_num == n:
 self.frame_num = 0
 def update(self):
 teclas_pulsadas = pygame.key.get_pressed()
 dx = 0
 dy = 0
 pygame.key.set_repeat()
 if teclas_pulsadas[K_s]:
 self.imagen = pygame.image.load('imagenes/s.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.transformar_en_s()
 
 if teclas_pulsadas[K_n]:
 self.imagen = pygame.image.load('imagenes/n.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.destransformar()
 
 if teclas_pulsadas[K_z]:
 if self.ss == 0:
 self.imagen = pygame.image.load('imagenes/gn.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 elif self.ss == 1:
 self.imagen = pygame.image.load('imagenes/gs.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.animar(4)
 
 
 if teclas_pulsadas[K_UP]:
 if self.ss == 0:
 self.imagen = pygame.image.load('imagenes/n.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 elif self.ss == 1:
 self.imagen = pygame.image.load('imagenes/s.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.direcion = ISO_ARR
 dy = -5
 self.animar(4)
 
 
 elif teclas_pulsadas[K_DOWN]:
 if self.ss == 0:
 self.imagen = pygame.image.load('imagenes/n.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 elif self.ss == 1:
 self.imagen = pygame.image.load('imagenes/s.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.direcion = ISO_ABA
 dy = 5
 self.animar(4)
 
 elif teclas_pulsadas[K_LEFT]:
 if self.ss == 0:
 self.imagen = pygame.image.load('imagenes/n.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 elif self.ss == 1:
 self.imagen = pygame.image.load('imagenes/s.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.direcion = ISO_IZQ
 dx = -5
 self.animar(4)
 
 elif teclas_pulsadas[K_RIGHT]:
 if self.ss == 0:
 self.imagen = pygame.image.load('imagenes/n.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 elif self.ss == 1:
 self.imagen = pygame.image.load('imagenes/s.png')
 self.imagen.set_colorkey(self.imagen.get_at((0,0)))
 self.direcion = ISO_DER
 dx = 5
 self.animar(4)
funcionan bien, el problema es que el jugador tiene que mantener apretado la tecla para que la animacion se concrete, y ensima cuando suelta queda en cualuquier frame.
Lo que quiero lograr es que con solo apretar una ves la tecla se concrete la animacion entera(es decir muestre las 4 fotos) y vuela a la 1.
Saludos!






