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é?

Était-ce utile?

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
scroll top