有人可以帮助我加快 pyautogui 自动化 运行 的速度吗?

Could someone help me in making my pyautogui automation run faster?

所以我制作了一个机器人来尝试玩这个仿冒钢琴块游戏:http://tanksw.com/piano-tiles/ 但我无法足够快地达到 运行,而且我不能使用 win32api,因为我是 mac 代码如下:

import pyautogui

pyautogui.PAUSE = 0.0

# Tile 1 Position: X:  820 Y:  836
# Tile 2 Position: X:  915 Y:  836
# Tile 3 Position: X:  1010 Y:  836
# Tile 4 Position: X:  1120 Y:  836

while True:

    if pyautogui.pixel(820, 678)[0] == 17:
        pyautogui.press('a')
    elif pyautogui.pixel(915, 678)[0] == 17:
        pyautogui.press('s')
    elif pyautogui.pixel(1010, 678)[0] == 17:
        pyautogui.press('d')
    elif pyautogui.pixel(1120, 678)[0] == 17:
        pyautogui.press('f')
如果有人能提供帮助,我将不胜感激:)

.pixel() 特别慢,因为每次都要截图。

截图一次,然后依次检查每个位置,速度更快;但每次您希望更改内容时,您确实需要刷新屏幕截图。

例如,这是一个基于鼠标点击的版本:(其中 positions 是一个元组坐标列表)

    im = pyautogui.screenshot()

    for x, y in positions:

        if im.getpixel((x, y))==(17, 17, 17):
            pyautogui.click(x, y)
            break

这比使用 pixels() 检查每个位置至少快 40%