跨平台键盘和鼠标检测

问题描述 投票:0回答:1

我正在使用 PyCraft 在 Minecraft 中创建一个小蛇游戏,我需要检测按键或鼠标点击来控制蛇的移动。然而,我遇到了一个问题,我无法解决。

我尝试使用

keyboard
模块,但它似乎只能在 Python 程序本身中工作。我还搜索了 PyCraft 是否有处理事件的内置支持,但我找不到任何信息。此外,我使用 Windows 作为操作系统。

python keyboard cross-platform mouse detection
1个回答
0
投票

我建议使用 pynput,而不是使用键盘模块。 Pynput 不仅可以检测按键和鼠标点击,还可以控制它们(虚拟按键和鼠标点击)。

检测鼠标点击:

from pynput import mouse

def on_click(x, y, button, pressed):
    print('{0} at {1}'.format(
        'Pressed' if pressed else 'Released',
        (x, y)))
    if not pressed:
        # Stop listener
        return False

with mouse.Listener(on_click=on_click) as listener:
    listener.join()

并检测按键:

from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

这应该对你有用。你提到键盘模块只能在 python 本身中工作,尽管我测试了它,并且它确实在程序中工作,所以我建议在你尝试使用键盘模块时显示你的代码,以防万一你忽略了一些东西。 Pynput 绝对可以在 python 程序窗口之外运行。

此代码来自https://pypi.org/project/pynput/,因此如果您需要更多信息,我建议您去那里。那里还有完整文档的链接。

我还建议解释一些更多的事情,例如:“键盘和鼠标检测是否需要同步?或者您是否需要在特定时间检测键盘,然后在另一个时间检测鼠标?”

如果 pynput 仍然不是您的解决方案,那么我确实知道存在鼠标模块,所以至少您可以让鼠标工作,但您必须弄清楚键盘。

© www.soinside.com 2019 - 2024. All rights reserved.