[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] Key Presses
Ian,
Using the unicode event attribute seems to do the trick.
import sys
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((320,200))
Message = ''
TypingMessage = 1
valid_keys = filter (
lambda c: r'\x' not in `c`,
[
chr(c) for c in
[getattr(pygame, k) for k in dir(pygame) if k.startswith('K_')]
if 0 <= c <= 255
]
)
def is_quitting(event):
return (
event.type == QUIT or
( event.type == KEYDOWN and event.key == K_ESCAPE )
)
print valid_keys
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if 0:
pass
elif event.key == K_BACKSPACE and TypingMessage:
Message = Message[:-1]
elif TypingMessage:
if event.unicode in valid_keys: Message += event.unicode
print Message
if is_quitting(event): sys.exit(Message)