Tastatureingaben richtig auswerten.
Verfasst: Mittwoch 17. September 2008, 12:56
Hi.
Ich bin gerade dabei, ein Spiel zu scripten, wo der User am Start seinen Namen eingeben muss, und während des Spiels auch chatten kann (Server-Client-Spiel). Das ganze steht soweit, jetzt komme ich zu dem Teil, vor dem es mir am meisten Graut: Wie bekomme ich die Tastatureingaben richtig hin?
Ich habe bisher folgendes:
Das ganze lässt Zeichen von a-zA-Z0-9 und einige Sonderzeichen zu. Umlaute funktionieren nicht wirklich, und ein ß kriege ich mit dem ASCII Satz auch nicht hin. Kann mir jemand erklären, bzw. sagen, was ich ändern muss, damit er auch jegliche andere Zeichen erkennt? (ß, }, %, ^^, etc)? Ich kriege das ganze einfach nicht gebacken.
Ein Problem besteht zusätzlich: Sobald ich z.B. a gedrückt halte, wird es nur 1x eingegeben, erst wenn ich es erneut drücke, wird es nochmal erkannt :/
Manchmal erscheinen auch nur diese Kästchen, d.H. das Zeichen ist unbekannt. Was kann ich dagegen tun?
Hoffentlich kann mir jemand von euch Tipps geben
Danke im Vorraus,
~ Chris
Ich bin gerade dabei, ein Spiel zu scripten, wo der User am Start seinen Namen eingeben muss, und während des Spiels auch chatten kann (Server-Client-Spiel). Das ganze steht soweit, jetzt komme ich zu dem Teil, vor dem es mir am meisten Graut: Wie bekomme ich die Tastatureingaben richtig hin?
Ich habe bisher folgendes:
Code: Alles auswählen
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if 33 <= event.key <= 126 or event.key in [228, 246, 229, 196, 214, 19]:
if 33 <= event.key <= 126 and (pygame.key.get_mods() & KMOD_SHIFT or pygame.key.get_pressed()[K_CAPSLOCK]):
name += chr(event.key - 32)
else:
name += chr(event.key)
Ein Problem besteht zusätzlich: Sobald ich z.B. a gedrückt halte, wird es nur 1x eingegeben, erst wenn ich es erneut drücke, wird es nochmal erkannt :/
Manchmal erscheinen auch nur diese Kästchen, d.H. das Zeichen ist unbekannt. Was kann ich dagegen tun?
Hoffentlich kann mir jemand von euch Tipps geben
Danke im Vorraus,
~ Chris