/ / Come si fa a premere l'ultimo tasto freccia usando curses? - python, keypress, curses

Come si fa a premere l'ultimo tasto freccia usando curses? - python, keypress, curses

Sto scrivendo a Gioco del serpente Python usando le maledizioni, ma sto avendo qualche problema a controllare il serpente, il mio codice corrente per il controllo del serpente è posto all'interno del ciclo principale e assomiglia a questo:

while True:
char = screen.getch()
if char == 113: exit()  # q
elif char == curses.KEY_RIGHT: snake.update(RIGHT)
elif char == curses.KEY_LEFT: snake.update(LEFT)
elif char == curses.KEY_UP: snake.update(UP)
elif char == curses.KEY_DOWN: snake.update(DOWN)
else snake.update()
time.sleep(0.1)

Tuttavia il codice sembra trattare i tasti premuti come una coda (quindi il serpente si fermerà quando finirà le presse della freccia), mentre io in realtà voglio che recuperi l'ultimo tasto freccia premuto.

Come posso recuperare l'ultimo tasto freccia premuto?

risposte:

3 per risposta № 1

Impostato screen.nodelay(1):

screen.nodelay(1)
while True:
char = screen.getch()
if char == 113: break  # q
elif char == curses.KEY_RIGHT: snake.update(RIGHT)
elif char == curses.KEY_LEFT: snake.update(LEFT)
elif char == curses.KEY_UP: snake.update(UP)
elif char == curses.KEY_DOWN: snake.update(DOWN)
else: snake.update()
time.sleep(0.1)