Nie potrafię przesłać zmiennej poza fukcje :), próbowałem zmiennych globalnych tak jak w poprzedniej wersji kodu, generalnie chyba nic poza keyboard.wait się nie wykonuje. Potrzebna jeszcze jedna pętla ?
Na pewno nie.
Co do tego jak do tego podejść, odpowiedź to jest jeszcze raz: Po prostu przeczytaj dokumentacje. Biblioteka której używasz ma dokumentację tutaj: https://github.com/boppreh/keyboard#api Zajęło mi dosłownie 5 sekund żeby znaleźć opis tego jak działa keyboard.add_hotkey()
, i ten opis jest tutaj: https://github.com/boppreh/keyboard#keyboardadd_hotkeyhotkey-callback-args-suppressfalse-timeout1-trigger_on_releasefalse
Żeby przerobić Twój kod, powinieneś zrobić coś takiego:
def start():
def send(keys: list[str]) -> None:
send_udp("pressed " + ",".join(keys))
keyboard.add_hotkey('a + w', send, args=['a', 'w'])
keyboard.add_hotkey('a + s', send, args=['a', 's'])
keyboard.add_hotkey('d + w', send, args=['d', 'w'])
keyboard.add_hotkey('d + s', send, args=['d', 's'])
keyboard.add_hotkey('w', send, args=['w'])
keyboard.add_hotkey('s', send, args=['s'])
keyboard.add_hotkey('a', send, args=['a'])
keyboard.add_hotkey('d', send, args=['d'])
keyboard.wait("esc")
def send_udp(message: str, address_port) -> None:
print("Sending...:" + message)
UDPClientSocket.sendto(str.encode(msgFromClient), serverAddressPort)
if __name__ == '__main__':
print("Started listening for keys...")
start()
print("Stopped listening for keys.")
Nie potrafię przesłać zmiennej poza fukcje :),
Tego się nie da zrobić, bo keyboard.add_hotkey()
wystawia Ci callback, więc jedyne co możesz zrobić to wywołać odpowiednią funkcję wtedy.