[pyar] [pygame] mantener tecla pulsada
Christian Guarrera
listacgu en gmail.com
Sab Jul 7 19:22:07 ART 2012
2012/7/7 Matías Bellone <matiasbellone en gmail.com>:
> On Sat, Jul 7, 2012 at 7:05 PM, Angel Java Lopez <ajlopez2000 en gmail.com> wrote:
>> 2012/7/7 Christian Guarrera <listacgu en gmail.com>
>>>
>>> Hola a todos,
>>> estoy empezando a ver algo de pygame y no logro hacer que al presionar
>>> una tecla y dejarla apretada continue con el evento,
>>> por ejemplo:
>>>
>>>
>>> if event.type == pygame.KEYDOWN:
>>> if event.key == pygame.K_LEFT:
>>> r1.move_ip(-1,0)
>>> if event.key == pygame.K_RIGHT:
>>> r1.move_ip(1,0)
>>> if event.key == pygame.K_UP:
>>> r1.move_ip(0,-1)
>>> if event.key == pygame.K_DOWN:
>>> r1.move_ip(0,1)
>>>
>>>
>>> todo esto dentro de:
>>> for event in pygame.event.get():
>>>
>>> alguien sabe de que manera puedo solucionarlo?
>>
>> Hmmmm.. aclaro que no se nada de Pygame ;-)
>>
>> pero encontre
>> http://www.pygame.org/docs/ref/key.html#pygame.key.set_repeat
>>
>
> Yo tampoco sé nada de pygame pero pensaba en algo distinto, que está
> descripto en los comentarios de ese mismo método: las teclas cambian
> el estado del objeto (r1 en este caso), y en cada ciclo del juego el
> objeto se actualiza sólo según su estado.
>
> Esto, además, evita el problema que - aparentemente - tiene
> set_repeat: sólo genera los eventos para un tecla, aún cuando haya
> varias presionadas (por lo que no vas a poder - por ejemplo - simular
> movimiento en diagonal o moverte y disparar al mismo tiempo).
>
> En uno de los comentarios lo muestran como:
>
> if e.type == KEYDOWN:
> if e.key == K_LEFT:
> ship.xspeed -= SPEED
> elif e.key == K_RIGHT:
> ship.xspeed += SPEED
> elif e.key == K_UP:
> ship.yspeed -= SPEED
> elif e.key == K_DOWN:
> ship.yspeed += SPEED
> elif e.key == K_SPACE
> ship.firing = True
> elif e.type == KEYUP:
> if e.key == K_LEFT:
> ship.xspeed += SPEED
> elif e.key == K_RIGHT:
> ship.xspeed -= SPEED
> elif e.key == K_UP:
> ship.yspeed += SPEED
> elif e.key == K_DOWN:
> ship.yspeed -= SPEED
> elif e.key == K_SPACE:
> ship.firing == False
> # y fuera del get event.get hacés que ship se mueva antes de
> actualizar el display
>
> Saludos,
> Toote
> --
> Web: http://www.enespanol.com.ar
voy a tener en cuenta esto,
despues les comento,
saludos!
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
More information about the pyar
mailing list