Как вы получаете последнюю кнопку со стрелкой нажатую с помощью проклейки?
Вопрос
Я пишу А. 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)
Не связан с StackOverflow