Comment obtenez-vous la dernière touche flèche bossée avec malédictions?
Question
J'écris un jeu de serpent Python en utilisant malédictions , mais ai quelques difficultés à contrôler le serpent , mon code de courant pour commander le serpent est placé dans la boucle principale et ressemble à ceci:
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)
Cependant, le code semble traiter les touches pressées comme Qué (de sorte que le serpent s'arrête quand il est à court de presses à flèches), alors que je veux réellement récupérer la dernière flèche qui a été pressé.
Comment puis-je récupérer la dernière flèche qui a été pressé?
La solution
Set 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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow