问题描述
我发现有两种检测点击的方法:使用 MOUSEBUTTONUP
和 mouse.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()
返回一个布尔值列表,代表所有鼠标按钮的状态(True
或 False
)。只要按钮被按住,按钮的状态就是 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
的文档中找到。