不重复,鼠标左键循环点击

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

我是 Python 和这些论坛的新手,所以请耐心等待,我们将不胜感激。

我确实在 Stack Overflow 论坛上搜索了这个问题,并找到了关于该主题的帖子。然而,该帖子似乎在多个窗口中寻找鼠标位置坐标,并通过单击一次输出这些坐标,这不是我需要的。

我正在构建一个游戏机器人程序作为学习 python 的一种方式。我需要单击一次左键来作为瞄准敌人的一种方式,这需要在每次程序循环时发生一次。

这是我用来引起左键单击并为“单击”创建定义的代码(参见下面更大的代码块):

#TARGET ENEMY
if pyautogui.pixel (1096,127) [0] == 16:
        click(1096,127)
        time.sleep(0.5)

当我将此代码放入循环中时,我会在整个程序持续时间内重复单击鼠标左键,当我将其设置在循环之外时,它只播放一次,然后再也不会播放,除非我停止并重新启动程序。

我似乎无法在 pyautogui 中找出/找到一个计数器代码或函数,它将播放鼠标左键单击一次并继续循环的下一部分。我还尝试以各种配置重新组织代码,但似乎都无济于事。我有信心我需要代码来告诉它在单击鼠标左键后向下移动循环。

我没有看到“持续时间”或“点击计数器”类型的功能

这是整个代码块

def click(x,y):
    win32api.SetCursorPos((x,y))
    time.sleep(0.9)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(0.1)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0) 

def debuff(key):
    pyautogui.keyDown("4")
    time.sleep(0.1)
    pyautogui.keyUp("4")

def attack1(key):
    pyautogui.keyDown("8")
    time.sleep(0.1)
    pyautogui.keyUp("8")
    time.sleep(0.9)    

def attack2(key):
    pyautogui.keyDown("2")
    time.sleep(0.1)
    pyautogui.keyUp("2")
    time.sleep(0.9)
    
def attack3(key):
    pyautogui.keyDown("1")
    time.sleep(0.1)
    pyautogui.keyUp("1")
    time.sleep(0.7)

#TARGET ENEMY
if pyautogui.pixel (1096,127) [0] == 16:
        click(1096,127)
        time.sleep(0.5)

#Used to stop the programq
while keyboard.is_pressed('g') == False:
     
        #DEBUFF
    if pyautogui.pixel (1127, 1268) [0] == 247:
        time.sleep(0.5)
        curse("4")
        time.sleep(3)
                
        #ATTACK1          
    if pyautogui.pixel (1517, 1269) [0] == 247:
        lifedrain("8")
        time.sleep(3)

         #ATTACK2
            #if pyautogui.pixel (954, 1263) [0] == 244:
                #swarm("2")
                #time.sleep(0.9)

        #ATTACK 3
    if pyautogui.pixel (1096,127) [0] == 16:
            poke("1")
loops while-loop mouseevent
© www.soinside.com 2019 - 2024. All rights reserved.