微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python3中反转鼠标?

如何解决在python3中反转鼠标?

使用 pynput + pyautogui 我写了这个意大利面。用户的鼠标光标会覆盖倒置的光标,因此我怀疑我可能需要以某种方式通过此应用程序路由所有鼠标输入,假设这是实现此目的的最佳方法,我对此表示高度怀疑。我看过不同的库,主要是鼠标,它们做了同样的事情,所以我怀疑它是基于库的。无论如何,我是否可以暂时阻止用户的鼠标并将其路由到应用程序中,或者这是完全错误方法吗?

编辑:这可能是由于变量计算错误造成的。不太确定什么是正确的,仍在弄清楚...

def callback_Mouse(x,y):
    global Busy
    global OldX
    global OldY
    mousecontroller = Controller()
    if Listening == False:
        return False
    if Busy == True:
        print("Busy")
        return
    Busy = True
    MouseX = (x - OldX)
    MouseY = (y - OldY)
    print("x: ",x)
    print("y: ",y)
    print("MouseX: ",MouseX,"MouseY: ",MouseY)
    InvertedX = MouseX - (MouseX * 2)
    InvertedY = MouseY - (MouseY * 2)
    print("InvertedX: ",InvertedX,"InvertedY: ",InvertedY)
    mousecontroller.move(InvertedX,InvertedY)
    OldX,OldY = x,y
    print(OldX,OldY)
    Busy = False

EDIT2:完全重做这部分代码,只使用鼠标(和 pyautogui 来抓取屏幕大小),鼠标现在倒置工作,但是它非常紧张,我不知道为什么。 (编辑:减少了睡眠时间,现在看起来好一点)在游戏中也试过这个,正如预期的那样,它导致相机到处乱飞和抖动,不知道如何让它在游戏中工作。

def MouseCallback():
    global Listening
    global OldX
    global OldY
    while Listening == True:
        x,y = mouselib.get_position()
        DifferenceX = OldX - x
        DifferenceY = OldY - y
        InvertedX = OldX + DifferenceX
        InvertedY = OldY + DifferenceY
        if InvertedX >= screenWidth:
            InvertedX = screenWidth - 3
        elif InvertedX < 0:
            InvertedX = 3
        if InvertedY >= screenHeight:
            InvertedY = screenHeight - 3
        elif InvertedY < 0:
            InvertedY = 3
        mouselib.move(InvertedX,InvertedY,absolute=True)
        OldX,OldY = mouselib.get_position()
        time.sleep(0.001)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。