0

所以我想捕捉一张图像,images,它总是在同一个区域。然后它会消失,并且可能会或可能不会重新出现在不同的区域。

我希望程序在第一次出现时捕获它,如果它重新出现在其他区域,然后单击一组按钮,否则移动到不同的功能。

另一件事是每次调用函数时 image 都会发生变化,但它仍保留在同一位置。

下面是我的代码:

def playLoop():

s = capture(firstRegion)
warnBox = exists("1443867801301.png")
if not warnBox:
    if exists("1443867813008.png"):
        click(x)
        playLoop()
    else:
        if secondRegion.exists(Pattern(s).similar(0.8)):
            wait(3)
            click(x)
            playLoop()
        else:
            loopLoop()
else:
    doubleClick(y)
    if secondRegion.exists(Pattern(s).similar(0.8)):
            wait(3)
            click(x)
            playLoop()
    else:            
        loopLoop()

我没有收到任何错误,但它似乎不起作用。有任何想法吗?

4

2 回答 2

1
  1. I think you should change this:
    s = Screen.capture(firstRegion)
    for this:
    s = capture(firstRegion)
  2. You can get the coordinates with find(image):
    f = find(s)
    x = getX()
    y = getY()
  3. Finally, if you want to get the numer of times, you can pass a variable to the function:

    def playLoop(times,x,y):
    
        s = capture(firstRegion)
        t = find(s)
        if times==0:
            warnBox = exists("1443867801301.png")
            if not warnBox:
                if exists("1443867813008.png"):
                    click(x)
                    times+=1
                    playLoop(times,t.getX(),t.getY())
        if times != 0:
            warnBox = exists("1443867801301.png")
            if not warnBox:
                if t.getX() != x or t.getY() != y: #different location
                    doSomething()
                else:
                    otherFunction() #same location
                times+=1
    

    PD: Sry if my english isn't good :)

于 2015-10-07T06:06:03.067 回答
0

要查看 region1 是否存在于 region2 中,您可以使用if region2.exists(region1) then.

于 2015-10-30T23:17:30.207 回答