我看到有两种方法检测点击:使用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
。列表中的第1、2和3个元素表示鼠标的左键、中键和右键。如果按下了特定的按钮,则可以通过订阅来计算:
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
的文档中找到进一步的解释。