Python开发俄罗斯方块游戏(自学记录)

参考: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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容