检测鼠标滚轮

4

如何使用pygame在python中检测鼠标的向上和向下滚动? 我已经创建了一种检测方法,但它没有给我任何有关我滚动鼠标的方向信息,而且在检测鼠标滚动时效果不佳,只能检测到20次中的1次。

for event in pygame.event.get():
    if event.type == pygame.MOUSEWHEEL:
        print("Mouse Scroll Detected.")

还有其他方法可以检测鼠标滚动吗?


在pygame 2中,可以通过监听pygame.MOUSEWHEEL类型的事件来使用鼠标滚轮功能(请注意它们仍会像pygame 1.x中一样发出pygame.MOUSEBUTTONDOWN事件)。当触发此事件时,开发人员可以使用pygame.event.get()访问相应的Event对象。该对象可用于访问有关鼠标滚动的数据,例如哪个设备触发了事件(它将告诉您触发事件的确切鼠标设备)。这里还有一个代码示例。 - Tom Dalton
对于 MOUSEWHEEL 事件,查看 event.y 来确定你是向上还是向下滚动。也许这可以解决丢失事件的问题。更可能的情况是你正在尝试在多个地方处理事件或其他事情。请编辑你的问题并包含一个 [mcve],以便我们能够帮助你。 - import random
1个回答

7
MOUSEWHEEL事件对象有xy组件(参见pygame.event模块)。这些组件指示鼠标滚轮旋转的方向(对于水平和垂直滚轮):
for event in pygame.event.get():
    if event.type == pygame.MOUSEWHEEL:
        print(event.x, event.y)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接