我看到有两种检测点击的方法:使用MOUSEBUTTONUP
和mouse.get_pressed()
为什么有两种方法可以做到这一点?它们有什么不同吗?程序员什么时候会使用一种而不是另一种呢?
发布于 2021-01-27 15:57:15
事件只发生一次,用于在状态更改时接收通知。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
的文档中找到进一步的解释。
https://stackoverflow.com/questions/65914897
复制相似问题