[Pygame]Controles y animaciones

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

[Pygame]Controles y animaciones

Notapor leproso » Sab Mar 27, 2010 6:19 pm

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: 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!
leproso
 
Mensajes: 2
Registrado: Mar Jun 09, 2009 10:15 pm

Notapor shackra » Mar Mar 30, 2010 2:50 am

1. debes publicar el codigo fuente completo de tu juego si quieres una mejor atencion a tu problema.

2. porque cargas la imagen cada vez que se pulsa X tecla?, no seria mejor cargar estos recursos antes y luego hacer uso de sus referencias??

repito, publica tu codigo fuente completo y me veras como tratan aqui mejor tu problema! ;)
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica

Notapor leproso » Jue Abr 01, 2010 9:11 pm

Gracais por responder, pero ya puyde solucionarlo :)
leproso
 
Mensajes: 2
Registrado: Mar Jun 09, 2009 10:15 pm


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron