为什么我的函数会触发多次?
Why is my function triggering multiple times?
此代码:
- 寻找图像
a
- 如果找到
a
,它会尝试为数组中的任何图像找到匹配项
image_list
- 如果它在
image_list
中找到图像,它会查找 e
- 如果找到
e
,它会记录它并将鼠标移动到 x, y
检查像素颜色,然后在找到匹配项时单击。
这就是我的问题所在,我的 avoidLog()
函数每次点击被调用 2-3 次。我添加了 print("click")
来检查它是否真的在点击,它是否在正确的时间点击,但由于某种原因,我的日志不止一次被触发。
记录正确,只是次数为奇数。
我知道 python 在我的示例中在单个线程中运行,所以我不确定为什么它会循环返回并且 没有 单击。如果它多次单击并记录多次,对我来说会更有意义。
import pyautogui as py
def avoidLog():
avoidLog = open('Avoided.txt', 'a')
avoidLog.write("Found at: " + str(f) + " at: " + str(skipTime))
avoidLog.write("\n")
avoidLog.close()
image_list = []
while True:
if py.locateOnScreen('a.jpg') != None:
for image in image_list:
found = py.locateCenterOnScreen(image)
if found != None:
skipTrigger = py.locateOnScreen('e.jpg')
if skipTrigger != None:
avoidLog()
py.moveTo(x, y)
r = py.pixelMatchesColor(x,y, (r,g,b))
if r == True:
py.sleep(2)
print("click")
py.click()
break
只要找到 e.jpg,就会调用 avoidLog()。但是,仅当 pixelMatchesColor 为 True
时才会调用 py.click()
此代码:
- 寻找图像
a
- 如果找到
a
,它会尝试为数组中的任何图像找到匹配项image_list
- 如果它在
image_list
中找到图像,它会查找e
- 如果找到
e
,它会记录它并将鼠标移动到x, y
检查像素颜色,然后在找到匹配项时单击。
这就是我的问题所在,我的 avoidLog()
函数每次点击被调用 2-3 次。我添加了 print("click")
来检查它是否真的在点击,它是否在正确的时间点击,但由于某种原因,我的日志不止一次被触发。
记录正确,只是次数为奇数。
我知道 python 在我的示例中在单个线程中运行,所以我不确定为什么它会循环返回并且 没有 单击。如果它多次单击并记录多次,对我来说会更有意义。
import pyautogui as py
def avoidLog():
avoidLog = open('Avoided.txt', 'a')
avoidLog.write("Found at: " + str(f) + " at: " + str(skipTime))
avoidLog.write("\n")
avoidLog.close()
image_list = []
while True:
if py.locateOnScreen('a.jpg') != None:
for image in image_list:
found = py.locateCenterOnScreen(image)
if found != None:
skipTrigger = py.locateOnScreen('e.jpg')
if skipTrigger != None:
avoidLog()
py.moveTo(x, y)
r = py.pixelMatchesColor(x,y, (r,g,b))
if r == True:
py.sleep(2)
print("click")
py.click()
break
avoidLog()。但是,仅当 pixelMatchesColor 为 True
时才会调用 py.click()