为什么我不能在这里模拟右击? (使用Python)

时间:2018-02-03 01:55:31

标签: python python-3.x mouseevent right-click

我对编程非常陌生,所以请原谅我,如果这有明显的答案,那么你就知道我试图编写一个在Terraria游戏中执行钓鱼故障的程序。 在我的代码[Main Program]的最后一部分,我使用了函数gui.rightClick()。该功能本身有效,但在游戏中无效。我也尝试使用鼠标库,我使用函数mouse.right_click()并得出相同的结果,所以我认为它必须对游戏做一些事情。有人可以告诉我为什么会这样,如果有办法吗?它真的会帮助我,所以提前谢谢! :D哦,如果你知道如何改进我的代码,请马上告诉我。再次感谢。

import pyautogui as gui
import keyboard, _thread, sys, time

# Global variable for shutting down the program
shutDown = False

# Position of disposable stuff in the inventory
item_x, item_y = 279, 233

# Function that tells the main thread to shut down
def pClose():
    global shutDown
    while True:
        try:
            if keyboard.is_pressed("alt+c"):
                shutDown = True
                sys.exit()
        except:
            continue

# Function that checks if it's supposed to shut down the main thread
def pQuit(sD):
    if sD == True:
        sys.exit()

# Initializing thread with pClose()
_thread.start_new_thread(pClose,())

# Start Position of the Cursor
while True:
    try:
        if keyboard.is_pressed("alt+p"):
            start_x, start_y = gui.position()
            break
    except:
        continue

time.sleep(2)

# Main Program
for i in range(10):
    pQuit(shutDown)
    gui.press("e")
    pQuit(shutDown)
    gui.moveTo(item_x, item_y, duration= 0.25)
    pQuit(shutDown)
    gui.rightClick()
    pQuit(shutDown)
    gui.moveTo(start_x, start_y, duration= 0.25)
    pQuit(shutDown)
    gui.rightClick()
    pQuit(shutDown)
    gui.press("e")
    pQuit(shutDown)
    time.sleep(0.5)

更多信息: 我不能用Terraria中的这两个库来模拟任何类型的鼠标点击,但是它使用程序SpeedAutoClicker(但这并没有真正帮助)

1 个答案:

答案 0 :(得分:0)

哦,我发现了。右键单击只是为了让游戏快速识别。 我必须使用像mouseUp()和mouseDown()......这毕竟是一个简单的解决方案! :d