2 votes

Continu b' \xff '

Je veux faire un jeu avec Python 3.6 et j'ai un problème. Lorsque j'essaie de définir des conrols (comme WASD), le shell Python détecte que j'appuie constamment sur ÿ (unicode : b'). \xff '). Je n'ai pas de ÿ sur mon clavier. J'ai écrit : print(getch()) y print(chr(ord(getch()))) .

J'ai deux questions :

  1. Quelle est la solution à mon problème ?
  2. Quelle est la meilleure méthode pour définir les contrôles dans un jeu réalisé avec Python ?

Merci d'avance.

0voto

Ali Rokni Points 141

J'ai eu un problème similaire lorsque j'utilisais la console IPython incluse dans Spyder. Voici mes suggestions :

Tout d'abord, essayez d'utiliser cmd console pour vérifier si le problème persiste.

Deuxièmement, getch() n'attend pas que vous appuyiez sur une touche et lit continuellement. Si vous devez capturer quelques entrées spécifiques, vous devrez peut-être utiliser :

while True:
    if msvcrt.kbhit():
        ch = msvcrt.getch()
        print(ch)

Troisièmement, étant donné que vous avez des octets et que vous pouvez vouloir vérifier contre quelques caractères dans votre code, ma suggestion pour Windows est d'utiliser getwch() au lieu de getch() . Voici mon code qui enregistre les caractères avec l'heure à laquelle ils ont été pressés :

import msvcrt, sys, datetime
while True:
    if msvcrt.kbhit():
        ch = msvcrt.getwch()
        if ch == 'q':
           sys.exit()
        else:
           print (ch, " Pressed at : ", datetime.datetime.now().time())

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X