Załóżmy, że chcę utworzyć bardzo prosty program w python, który wskazuje, jak długo klawisz jest naciśnięty. Tak więc, jeśli piszę i przytrzymam klawisz j
przez kilka chwil, szukam napisać program zdolny do wyświetlania informacji, takich jak the key 'j' was pressed for 1.1 seconds
.Określa długość naciśnięcia klawisza w pytonie
Z tego co wiem, sposób, w jaki należy to osiągnąć, polega na wykrywaniu i sygnalizowaniu znaczników zdarzeń KEYDOWN i zdarzeń KEYUP oraz dokonywaniu odpowiednich odejmowań znaczników czasu. Więc wystarczy wykryć zdarzenia KEYDOWN i KEYUP.
Istnieje wiele różnych pytań i odpowiedzi dotyczących SO dotyczących wykrywania pojedynczego naciśnięcia klawisza lub wykrywania wejścia pojedynczego znaku, takiego jak this one lub this one, które wykorzystują jakąś formę getch. Spojrzałem na bibliotekę przekleństw Pythona i z tego, co mogę powiedzieć, podstawowa forma wykrywania kluczy jest również w postaci jednoliterowego getch(). Ale te nie wykrywają długości naciśnięcia klawisza --- wykrywają tylko KEYDOWN.
Rozumiem, że wykrywanie długości naciśnięcia klawisza jest koniecznym zadaniem w grach, więc spodziewam się, że pygame ma metody wykrywania czasu trwania naciśnięcia klawisza. Ale mam nadzieję, że można użyć znacznie cieńszej i bardziej bezpośredniej biblioteki, aby wykryć czas trwania naciśnięcia klawisza.
PyGame zawiera zdarzenia "KEYDOWN" i "KEYUP", dzięki czemu można uzyskać zarówno czas, jak i odjąć. – furas
Wszystkie 'GUI' powinny mieć metody, aby uzyskać zdarzenia' KEYDOWN' i 'KEYUP'. – furas
Czy moja odpowiedź jest niepoprawna? :) –