Frage

Ich schreibe eine Python Schlange Spiel mit Flüche , aber ein paar Probleme habe die Schlange steuern , mein aktueller Code für die Schlange Steuerung innerhalb der Hauptschleife und sieht wie folgt platziert:

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)

Allerdings scheint der Code die Schlüssel zu behandeln als que gedrückt (so die Schlange stoppen, wenn es zu Ende geht Pfeil-Pressen), während ich möchte es tatsächlich die letzte Pfeiltaste abzurufen, die gedrückt wurde.

Wie kann ich die letzte Pfeiltaste abrufen, die gedrückt wurde?

War es hilfreich?

Lösung

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top