Как вы получаете последнюю кнопку со стрелкой нажатую с помощью проклейки?

StackOverflow https://stackoverflow.com/questions/3651709

  •  01-10-2019
  •  | 
  •  

Вопрос

Я пишу А. Python Snake Game с использованием проклятий, но у меня возникли проблемы с контролем змеи, мой текущий код для управления змеей помещается в главный цикл и выглядит так:

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)

Однако код, по-видимому, обрабатывает ключевые ключи, нажатые в виде que (поэтому змея остановится, когда она запускается из стрелки-прессов), тогда как я действительно хочу, чтобы она была нажата на нажатие последней стрелки.

Как я могу получить последнюю клавишу со стрелкой, которая была нажата?

Это было полезно?

Решение

Задавать 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top