Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2010, 15:34
_leproso_
 
Fecha de Ingreso: mayo-2009
Mensajes: 50
Antigüedad: 15 años
Puntos: 1
[Pygame]Controles y Animaciones

Hola a todos! He intentado solucionar pero no pude, busque en inet y tampoco encontre una solución. El problema es el siguiente:

Las siguientes funciones de la clase personaje mueven y realizan la animacion de movimiento del personaje:

Código:

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!
__________________
Publica tus relatos