Bueno en mi primer mensaje quería preguntar una duda sobre un ligero "fallo" en un pequeño juego que estoy haciendo con python y pygame. He buscado alguna solución por internet pero no veo nada que me ayude.
El problema es el siguiente: Tengo una navecita, que solo se desplaza lateralmente usando las teclas de dirección. Se mueve bien y responde correctamente a los controles, pero el problema llega al querer hacer un cambio de dirección brusco.
Resulta que si, por ejemplo, pulso la tecla derecha -> se mueve a la derecha. Sin soltar dicha tecla, pulso la izquierda -> se mueve a la izquierda. Y de nuevo sin soltar la derecha, suelto la izquierda -> la nave se queda parada hasta que se vuelve a pulsar alguna tecla.
Dicho así es como para pensar "hay que ser muy lerdo para hacer eso mientras se juega", pero la verdad es que es posible, aunque solo sea cuando pulsas ambas teclas rápidamente para hacer un cambio de dirección como ya he dicho. Pasa muchas veces y puede llegar a molestar. Y bueno, pos al final me decidí a registrarme y pedir ayuda a ver si a alguien se le ocurre algo para ayudarme con este problemilla.
Gracias de antemano al que pueda responderme.
PD: Código donde están los controles de la nave:
- Código: Seleccionar todo
while True:
CLOCK.tick(60)
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)
elif event.type == KEYDOWN:
if event.key == K_RIGHT:
ship.vel[0] = 3
elif event.key == K_LEFT:
ship.vel[0] = -3
elif event.key == K_SPACE:
laserSprite.add(Shoot(ship.rect.midtop))
elif event.type == KEYUP:
if event.key == K_RIGHT or event.key == K_LEFT:
ship.vel[0] = 0
shipSprite.update()
laserSprite.update()
enemySprite.update()
enemyLaserSprite.update()