Soy nuevo en Python, y acabo de hacer un juego y un menú en Python. La pregunta es, que el uso de (raw_) input() requiere que presione enter luego de cada pulsación de tecla, me gustaría hacerlo de modo que al presionar la flecha hacia abajo se seleccione al instante el siguiente elemento del menú, o mueva hacia abajo en el juego. Por el momento, requiere que me guste escribir "abajo" y luego presionar enter. También investigué bastante, pero preferiría no descargar módulos grandes (por ejemplo, pygame) solo para lograr un único método keyDown(). Entonces, ¿hay alguna manera más fácil, que simplemente no pude encontrar?Método de Python para leer la pulsación de tecla?
Editar: Acaba de descubrir que msvcrt.getch()
haría el truco. No es KeyDown(), pero funciona. Sin embargo, no estoy seguro de cómo usarlo, parece bastante extraño, ¿alguna ayuda aquí? Esto es lo que tengo en este momento:
from msvcrt import getch
while True:
key = getch()
print(key)
Sin embargo, me mantiene dando todos estos bytes sin sentido, por ejemplo, la flecha hacia abajo es la siguiente:
b'\xe0'
b'P'
y no tengo ni idea de cómo úsalos, he intentado comparar con chr() e incluso usar ord() pero realmente no puedo hacer ninguna comparación. Lo que estoy tratando de hacer es básicamente esto:
from msvcrt import getch
while True:
key = getch()
if key == escape:
break
elif key == downarrow:
movedown()
elif key == 'a':
...
Y así sucesivamente ... ¿Alguna ayuda?
No es una duplicado de eso. Se trata de eventos de pulsación, no de entrada de un solo carácter. – Deestan
¿Puedo hacer una solución multiplataforma? 'msvcrt' no está disponible en las distribuciones mac/linux de Python – cat