我是 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")