Как вы используете pyautogui / win32 gui и подушку вместе? - PullRequest
1 голос
/ 27 марта 2020

Я работаю над своим первым большим проектом на Python - Вдохновленный учебным пособием по суши Криса Киля go, я создаю бота, который играет в текстовую сим-игру, используя gui автоматизацию и основы c компьютерное зрение. Я хочу использовать Pillow для создания снимков экрана и gui apis для управления операционной системой, но я могу создавать сценарии, которые выполняют оба, но не оба. Я не совсем уверен, что я делаю неправильно - любая помощь будет очень признательна - спасибо.

Вот сокращенная версия того, что я пытаюсь сделать:

def match_loop():
    global home_or_away
    box = (x_pad+1,y_pad+1,x_pad+806,y_pad+629)
    im2 = ImageGrab.grab(box)
    time.sleep(1)
    mousePos((x_pad+49, y_pad+149))
    leftClick()
    time.sleep(1)
    if home_or_away == "home":
        mousePos((x_pad+175, y_pad+543))
        leftClick()
        mousePos((x_pad+49, y_pad+149))
    else:
        mousePos((x_pad+728, y_pad+543))
        leftClick()
        mousePos((x_pad+49, y_pad+149))
    im2.save(os.getcwd() + '\\full_snap_' + str(int(time.time()))+'.png', 'PNG')
    while im2.getpixel((33,136)) != (206,203,214) : #while it's the first half
        im2 = ImageGrab.grab(box)
        im2.save(os.getcwd() + '\\full_snap_' + str(int(time.time()))+'.png', 'PNG')
        time.sleep(1)        
        if im2.getpixel((33,136)) == (206,203,214): #if's the secondhalf
            secondhalf()
    secondhalf()

Приведенный выше код работает нормально, но приведенный ниже код приводит к синтаксической ошибке после вызова функции mousePos, которая работает в функции выше, независимо от того, что я ставлю потом:

def subsaudit():
    im = ImageGrab.grab(box)
    im.save(os.getcwd() + '\\full_snap_' + '.png', 'PNG')
    if im.getpixel((124,399)) or im.getpixel((125,399)) or im.getpixel((126,399)) or im.getpixel((127,399)) or im.getpixel((128,399)) or im.getpixel((129,399)) or im.getpixel((130,399)) or im.getpixel((131,399)) or im.getpixel((132,399)) or im.getpixel((133,399)) or im.getpixel((134,399)) or im.getpixel((135,399)) or im.getpixel((136,399)) or im.getpixel((137,399)) != (0,0,66):
        subscount = 1
    if im.getpixel((124,419)) or im.getpixel((125,419)) or im.getpixel((126,419)) or im.getpixel((127,419)) or im.getpixel((128,419)) or im.getpixel((129,419)) or im.getpixel((130,419)) or im.getpixel((131,419)) or im.getpixel((132,419)) or im.getpixel((133,419)) or im.getpixel((134,419)) or im.getpixel((135,419)) or im.getpixel((136,419)) or im.getpixel((137,419)) != (0,0,66):
        subscount = 2  
    if subscount >= 1 :
        mousePos(((x_pad+178, y_pad+399))
        time.sleep(1)
        leftClick()
        box = (x_pad+1,y_pad+1,x_pad+806,y_pad+629)
        im = ImageGrab.grab(box)
        im.save(os.getcwd() + '\\full_snap_' + '.png', 'PNG')
...