/ / Como você obtém a última tecla de seta pressionada usando curses? - python, keypress, curses

Como você obtém a última tecla de seta pressionada usando maldições? - python, keypress, curses

Eu estou escrevendo um Jogo de cobra Python usando maldições, mas estou tendo alguns problemas para controlar a cobra, meu código atual para controlar a cobra é colocado dentro do loop principal e se parece com isso:

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)

No entanto, o código parece tratar as teclas pressionadas como um que (para que a cobra pare quando estiver sem prensas de seta), enquanto eu realmente quero recuperar a última tecla de seta que foi pressionada.

Como posso recuperar a última tecla de seta que foi pressionada?

Respostas:

3 para resposta № 1

Conjunto 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)