J'écris un Python snake game using curses, 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:Comment obtenez-vous la dernière touche fléchée en utilisant des malédictions?
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 la les touches pressées en tant que que (de sorte que le serpent va s'arrêter quand il n'y a plus de flèches), alors que je veux en fait récupérer la dernière touche fléchée qui a été enfoncée.
Comment puis-je récupérer la dernière flèche qui a été pressé?
Repensez votre conception (une variable 'direction' serait approprié) et ce problème disparaît. – You
@You: Si je comprends bien, cela ne résoudra pas mon problème. – Zaz
Cela dépend complètement de la façon dont vous configurez votre programme. Comme il est maintenant, on dirait que le mouvement dépend de l'entrée - une dépendance plus appropriée serait de faire dépendre le mouvement du temps seulement, et d'interroger (non-bloquant) les événements clés, changeant une variable 'direction' quand cela se produit. C'est comme ça que je le vois, de toute façon. – You