[pyar] [pygame] mantener tecla pulsada

Julian Agustin Cardonnet jcardonnet en gmail.com
Lun Jul 9 12:41:51 ART 2012


Hola,
Si mal no recuerdo te conviene no tocar el set_repeat, aunque ahora no me
viene a la mente cual fue el problema por querer resolver por ese lado el
asunto de los controles.

La solución que encontré fue en vez de tratar de responder al evento
KEY_DOWN, simplemente en cada 'tick' del gameloop
fijarme que teclas están pulsadas y actuar en consecuencia.

Queda algo parecido a esto:

def updatePlayer(self):
keys=pygame.key.get_pressed()
if keys[pygame.K_a]:
self.xPos=-self.speed
if keys[pygame.K_d]:
            self.xPos=self.speed
if keys[pygame.K_w]:
            self.yPos=-self.speed
if keys[pygame.K_s]:
            self.yPos=self.speed

De paso, te comento otro "truquito" con el tema del teclado y los eventos.
Queria usar las teclas de funcion para activar/desactivar info de debug en
el HUD, pero si usaba el evento KEY_DOWN para hacer el toggle on/off lo que
sucedia era que se prendia y apagaba como mil veces por segundo (una por
cada evento!).
Lo que termine haciendo fue escuchar el evento KEY_UP en vez del down y asi
solo se dispara cuando el humano realmente levanta el dedo de la tecla.

Espero que te sirva.

Saludos
Julian
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120709/4210f82e/attachment.html>


More information about the pyar mailing list