参考:https://gitbook.cn/gitchat/column/5b1a31bc862a01660e35955c/topic/5b1a89a23d723c686c3102cb
2019-06-19
任务:捕捉键盘按键事件
1.怎样捕捉事件
我们在程序的主循环(while)内捕捉键盘按键事件,程序运行时,玩家每按下一次键盘就会产生一个事件(event),而我们通过pygame.event来捕捉它们。
...
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
...
玩家按下键盘或点击关闭窗口都会产生事件,也就是pygame.event对象,并把该事件对象加入到事件队列尾部,每循环一次,通过pygame.event.get()将队列中事件取出赋给event变量。
事件类型
通过event.type获取事件类型,常见以下三种:
1.event.type == pygame.QUIT 关闭窗口事件类型
2.event.type == pygame.KEYDOWN 键盘按下事件类型
3.event.type == pygame.KEYUP 键盘松开事件类型
2.定义事件响应函数
定义check_events()来响应事件:
def check_events():
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_DOWN:
print("下键被按下")
elif event.key == pygame.K_UP:
print("上键被按下")
elif event.key == pygame.K_LEFT:
print("左键被按下")
elif event.key == pygame.K_RIGHT:
print("右键被按下")
同时,
...
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
...
替换为:
...
while True:
check_events()
...
效果图:

图1.jpg