[pyar] [pygame] mantener tecla pulsada
Matías Bellone
matiasbellone en gmail.com
Sab Jul 7 19:16:48 ART 2012
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
More information about the pyar
mailing list