8

curses を使用して Python スネーク ゲームを作成していますが、スネークの制御に問題があります。スネークを制御するための現在のコードはメイン ループ内に配置され、次のようになります。

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 として扱うようです (したがって、ヘビは矢印キーがなくなると停止します) が、実際には、最後に押された矢印キーを取得する必要があります。

最後に押された矢印キーを取得するにはどうすればよいですか?

4

1 に答える 1

3

セット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)
于 2010-09-06T21:18:45.557 に答える