Pynput Python: Wenn Taste 'Buchstabe' gedrückt?
Also ich programmiere ein Spiel auf Python und dafür muss ich ja z.B. pynput für die Steuerung benutzen z.B. ich will dass wenn die Taste F gedrückt wird das der Sprite angreift. Wie schreibt man das?
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Kannst du mit:
from pynput import keyboard
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(
key.char))
except AttributeError:
print('special key {0} pressed'.format(
key))
def on_release(key):
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
# Stop listener
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
# ...or, in a non-blocking fashion:
listener = keyboard.Listener(
on_press=on_press,
on_release=on_release)
listener.start()
nichts anfangen?
Bringt dich:
from pynput import keyboard
def on_press(key):
try:
if key.char == 'f':
print("Sprite")
except AttributeError:
#es wurde kein Bustabe gedrueckt.
#print('special key {0} pressed'.format(key))
pass
listener = keyboard.Listener(
on_press=on_press,
suppress=True)
listener.start()
#deine bestimmt schon vorhandene Schleife:
while(1):
pass
weiter?
Kreasteve
24.09.2019, 17:17
@Brockdish
.format() ist eine Methode ("Funktion") der Klasse String.
'alphanumeric key {0} pressed'.format(key.char)
ist das gleiche wie
'alphanumeric key '+ key.char +' pressed'
Key wird vom Listener übergeben und entspricht der Taste die gedrückt/losgelassen wurde, sozusagen noch codiert vom Betriebssystem.
Mit key.char bekommst du den entsprechenden Buchstaben geliefert, der hinter dem key steht, falls verfügbar. Dabei ist "char" ein Attribut (eine "Variable") der Klasse pynput.keyboard.keyCode, das sieht man, wenn man mal in den Sourcecode schaut.
Was ist .format (...) und was ist key.char und key?