pygame小小游戏----Bomb Catcher

本文介绍了如何使用pygame创建一个简单的"接炸弹"游戏,讲解了实时事件循环、鼠标事件处理以及设备轮询,包括轮询键盘和鼠标的方法,并提供了部分源代码。
摘要由CSDN通过智能技术生成

Bomb Catcher 游戏

哎呀,好久不见呀,我又来更新了,这次我们玩一个,“接炸弹”的游戏,我们可以通过这个游戏,学会pygame事件,学习实时循环,鼠标事件,学习轮询鼠标设备状态,<( ̄︶ ̄)↗[GO!]

认识Bomb Catcher 游戏

这个游戏非常的简单,使用鼠标在屏幕底端移动红色的“挡板”,以接住从屏幕顶端落下的黄色的“炸弹?”,玩起来是这个样子滴。
在这里插入图片描述

实时事件循环

Pygame中的事件处理是在一个实时的循环中完成的。使用一条while语句和一个while语句块来创造循环,只要while条件为真,while语句块中的代码就会重复地执行。
要响应一个Pygame事件,我们必须解析事件并处理每个事件。尽管有可能一次有很多的事件,通常只给出一个事件的简单示例。

鼠标事件

Pygame支持的鼠标事件包括:MOUSEMOTION、MOUSEBUTTONUP和MOUSEBUTTONDOWN。pygame文档对每个事件的属性较少提及,因此,需要花些时间来找到他们,当相应的事件发生的时候,我们可以读取事件中的这些属性。
对于MOUSEMOTION事件,属性是event.pos、event.rel和event.buttons。

    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
        elif event.type == MOUSEMOTION:
            mouse_x,mouse_y = event.pos
            move_x,move_y = event.rel

设备轮询

pygame中的事件系统并非我们可以用来检测用户输入的唯一的办法。我们可以轮询输入设备,看看用户是否与我们的程序交互。

轮询键盘

在Pygame中,使用pygame.key.get_pressed()来轮询键盘接口。该方法返回布尔值的一个列表,这是一个大的标志列表,每个键一个标志。使用相同的键常量值来索引所得到的布尔值数组。一次轮询的好处是,不必遍历事件系统就可以检测多个键的按下。我们可以使用如下代码来代替旧的事件处理程序代码,以检测Escape键:

    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        sys.exit()

轮询鼠标

我们也可以忽略事件系统并且直接轮询鼠标,如果这能更好地满足你的需求的话。实际上,我们只需要了解3个鼠标函数。第一个是pygame.mouse.get_pos(),它返回表示鼠标的当前位置的x和y值对:

pos_x,pos_y = pygame.mouse.get_pos()

同样,我们可以使用类似的方式来读取鼠标的相对移动:

pygame.mouse.get_rel():
rel_x,rel_y = pygame
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值