微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MOUSEBUTTONUP 与 mouse.get_pressed()

如何解决MOUSEBUTTONUP 与 mouse.get_pressed()

我发现有两种检测点击的方法:使用 MOUSEBUTTONUPmouse.get_pressed()

为什么有两种方法可以做到这一点?它们有什么不同吗?程序员什么时候会使用一个

解决方法

事件只发生一次,用于在状态改变时接收通知。 mouse.get_pressed() 用于随时获取鼠标按钮的当前状态。

MOUSEBUTTONDOWN 事件在您单击鼠标按钮时发生一次,而 MOUSEBUTTONUP 事件在鼠标按钮被释放时发生一次。 pygame.event.Event() 对象有两个提供鼠标事件信息的属性。 pos 是一个存储被点击位置的元组。 button 存储被点击的按钮。每个鼠标按钮都关联一个值。例如,鼠标左键、鼠标中键、鼠标右键、鼠标滚轮向上和鼠标滚轮向下的属性值为1、2、3、4、5。当按下多个键时,会发生多个鼠标按钮事件。进一步的解释可以在模块 pygame.event 的文档中找到。

鼠标的当前位置可以通过pygame.mouse.get_pos()来确定。返回值是一个元组,表示鼠标光标的 x 和 y 坐标。 pygame.mouse.get_pressed() 返回一个布尔值列表,代表所有鼠标按钮的状态(TrueFalse)。只要按钮被按住,按钮的状态就是 True。当按下多个按钮时,列表中的多个项目是True。列表中的第一个、第二个和第三个元素代表鼠标左键、中键和右键。如果按下特定按钮,则可以通过订阅进行评估:

buttons = pygame.mouse.get_pressed()
if buttons[0]:
    print("left button pressed")

如果按下任何按钮,可以使用 any 函数进行评估:

buttons = pygame.mouse.get_pressed()
if any(buttons):
    print("button pressed")

进一步的解释可以在模块 pygame.mouse 的文档中找到。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。