Sono nuovo di Python e ho appena creato un gioco e un menu in Python. La domanda è, che usando (raw_) input() mi imponga di premere Invio dopo ogni pressione di un tasto, mi piacerebbe farlo in modo che premendo la freccia verso il basso si selezioni istantaneamente la voce successiva del menu, o si scorra nel gioco. Al momento, mi richiede di digitare "down" e poi premere invio. Ho anche fatto un sacco di ricerche, ma preferirei non scaricare enormi moduli (ad es. Pygame) solo per ottenere un singolo metodo keyDown(). Quindi ci sono modi più semplici, che non riuscivo a trovare?Metodo Python per la lettura della pressione di un tasto?
Modifica: Ho appena scoperto che lo msvcrt.getch()
avrebbe fatto il trucco. Non è keyDown(), ma funziona. Tuttavia, non sono sicuro di come usarlo, sembra abbastanza strano, qualche aiuto qui? Questo è quello che ho ottenuto in questo momento:
from msvcrt import getch
while True:
key = getch()
print(key)
Tuttavia, continua a darmi tutti questi byte senza senso, per esempio, freccia giù è questo:
b'\xe0'
b'P'
e non ho idea di come li uso, ho provato a confrontarmi con chr() e anche ad usare ord() ma non posso davvero fare confronti. Quello che sto cercando di fare è fondamentalmente questo:
from msvcrt import getch
while True:
key = getch()
if key == escape:
break
elif key == downarrow:
movedown()
elif key == 'a':
...
E così via ... Qualsiasi aiuto?
Non un duplicato di quello. Si tratta di eventi di keydown, non di input di singoli caratteri. – Deestan
Posso avere una soluzione multipiattaforma ?? 'msvcrt' non è disponibile sulle distribuzioni mac/linux di Python – cat