[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