Demo - 2 事件检索
使用pygame.event 处理
pygame.event.get() : 打开门让所有人进入
pygame.event.wait() : 发生一个事件再继续,类似于你盯着看,来一个放一个(一般游戏不会使用,因为游戏往往是动态运作)
pygame.event.poll() : 一旦调用,会根据实际情形返回一个真实的事件,或者一个"什么都没有"
pygame.mouse.get_pos() : 得到当前鼠标位置
事件检索 使用事件集 处理
使用事件获得鼠标位置,处理鼠标事件
MOUSEMOTION : 事件会在鼠标动作的时候发生,它有三个参数:
buttons – 一个含有三个数字的元组,三个值分别代表左键、中键和右键,1就是按下了。
pos – 位置
rel – 代表了现在距离上次产生鼠标事件时的距离
MOUSEBUTTONDOWN / MOUSEBUTTONUP : # button – 代表了哪个按键被操作
pos – 位置
事件过滤
pygame.event.set_blocked(事件名) : eg:pygame.event.set_blocked([KEYDOWN, KEYUP]),如果设置参数None,那么所有的事件都被打开了,
pygame.event.set_allowed() : 与上面相对的,我们使用来设定允许的事件。
产生事件 eg:
my_event = pygame.event.Event(KEYDOWN, key=K_SPACE, mod=0, unicode=u' ')
或者:
my_event = pygame.event.Event(KEYDOWN, {"key":K_SPACE, "mod":0, "unicode":u' '})
pygame.event.post(my_event)
产生自定义全新事件
CATONKEYBOARD = USEREVENT + 1
my_event = pygame.event.Event(CATONKEYBOARD, message="Bad cat!")
pgame.event.post(my_event)
然后获得它
for event in pygame.event.get():
if event.type == CATONKEYBOARD:
print event.message