MOUSEBUTTONUP vs 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。列表中的第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的文档中找到进一步的解释。

最新更新