Sto scrivendo un Python snake game using curses, ma sto avendo qualche difficoltà a controllare il serpente, il mio codice corrente per controllare il serpente è collocato all'interno del ciclo principale e si presenta così:Come si fa a premere l'ultimo tasto freccia usando curses?
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 la i tasti premuti come una coda (in modo che il serpente si fermi quando esaurisce i tasti freccia), mentre in realtà voglio che recuperi l'ultimo tasto freccia premuto.
Come posso recuperare l'ultimo tasto freccia premuto?
Ripensare il vostro disegno (una variabile 'direction' sarebbe adatto) e questo problema scompare. – You
@You: A quanto ho capito, questo non risolverà il mio problema. – Zaz
Ciò dipende completamente dalla modalità di layout del programma. Come è ora, sembra che il movimento dipenda dall'input: una dipendenza più adatta sarebbe quella di avere il movimento dipendente solo dal tempo e il polling (non bloccante) per gli eventi chiave, cambiando una 'direzione 'variabile quando questi si verificano. È così che lo vedo, comunque. – You