Jestem nowy w Pythonie i właśnie stworzyłem grę i menu w Pythonie. Pytanie brzmi, że użycie (raw_) input() wymaga ode mnie wciśnięcia enter po każdym naciśnięciu klawisza, chciałbym, aby naciśnięcie strzałki w dół natychmiast zmieni następny element menu lub przesunie się w dół w grze. W tej chwili wymaga mi, aby mi się podoba typ "dół", a następnie naciśnij enter. Zrobiłem też sporo badań, ale wolałbym nie pobierać wielkich modułów (np. Pygame) tylko po to, aby osiągnąć pojedynczą metodę keyDown(). Czy są jakieś prostsze sposoby, których nie mogłem znaleźć?Metoda Pythona do czytania naciśnięcia klawisza?
Edit: Właśnie dowiedziałem się, że msvcrt.getch()
by rade. To nie jest keyDown(), ale działa. Jednak nie jestem pewien, jak tego użyć, czy nie wydaje się dość dziwna, jakakolwiek pomoc tutaj? To jest to, co mam w tej chwili:
from msvcrt import getch
while True:
key = getch()
print(key)
jednak utrzymuje dając mi te wszystkie bajty nonsens, na przykład strzałki w dół, jest to:
b'\xe0'
b'P'
I nie mam pojęcia, jak używaj ich, próbowałem porównać z chr(), a nawet użyć ord(), ale nie mogę zrobić żadnych porównań. To, co próbuję zrobić, to w zasadzie:
from msvcrt import getch
while True:
key = getch()
if key == escape:
break
elif key == downarrow:
movedown()
elif key == 'a':
...
I tak dalej ... Jakakolwiek pomoc?
Nie duplikat tego. Dotyczy to zdarzeń kluczowych, a nie wprowadzania pojedynczych znaków. – Deestan
Mogę haz rozwiązanie cross-platform? 'msvcrt' nie jest dostępny na dystrybucjach mac/linux w Pythonie – cat