处理事件
pygame.event.get()
从事件队列中获得事件列表,即获得所有被队列的事件
增加参数,获得某类或某些类时间
pygame.event.get(type)
pygame.event.get(typelist)
pygame.event.poll()
从事列队列中获得一个事件
while True:
event=pygame.event.poll()
事件获取将从事件队列中删除
如果事件队列为空,则返回event.NOEVENT
pygame.event.clear()
从事件队列中删除事件,默认删除所有事件
该函数与pygame.event.get()类似,区别仅是不对事件进行处理
可以增加参数,指定删除某类或某些类事件
pygame.event.clear(type)
pygame.event.clear(typelist)
#pygame仅能处理128个事件
操作事件队列,设置事件队列能够缓存的类型
pygame.event.set_blocked(type or typelist)
控制哪些类事件不被允许被保存到事件队列中
pygame.event.set_allowed()
控制哪些类事件允许被保存到事件队列中
pygame.event.get_blocked()
测试某个事件类型是否被事件队列所禁止
如果事件被禁止,则返回True,否则返回False
生成事件
pygame.event.post(EVENT)
产生一个事件,并将其放入事件队列
一般用于放置用户自定义事件(pygame.USEREVENT),也可以用于放置系统定义事件(如 鼠标或键盘),给定参数
pygame.event.Event(type,dict)
创建一个给定类型的事件
其中,事件的属性和值采用字典类型复制,属性名采用字符串形式,如果创建已有事件 ,属性需一致
import pygame,sys
pygame.init()
screen=pygame.display.set_mode((600,400))
pygame.display.set_caption("事件")
fps=1
fclock=pygame.time.Clock()
num=1
while True:
uevent=pygame.event.Event(pygame.KEYDOWN,{"unicode":123,"key":pygame.K_SPACE,"mod":pygame.KMOD_ALT})
pygame.event.post(uevent)
num=num+1
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
elif event.type==pygame.KEYDOWN:
if event.unicode=="":
print("[KEYDOWN {}]".format(num),"#",event.key,event.mod)
else:
print("[KEYDOWN {}]".format(num), event.unicode, event.key, event.mod)
pygame.display.update()
fclock.tick(fps)
ps:学习链接 https://www.icourse163.org/course/BIT-1001873001