循环加速pyautogui屏幕截图

问题描述

所以,我在这里有这个程序,我将用它来为贪吃蛇游戏制作一个机器人。但这实在是太慢了。关于如何加快速度的任何想法?

import pyautogui
running = True

color = (231,71,29)
while running == True:
    s = pyautogui.screenshot()
    for x in range(s.width):
        for y in range(s.height):
            if s.getpixel((x,y)) == color:
                pyautogui.click(x,y)
                s = pyautogui.screenshot()
                print(x,y)
        

解决方法

您可以限制屏幕截图区域。根据{{​​3}}:

在 1920 x 1080 的屏幕上,screenshot() 函数大约需要 100 毫秒 - 不快但也不慢。

还有一个可选的 region 关键字参数,如果您不想要整个屏幕的屏幕截图。可以传递一个区域的左、上、宽、高的四整数元组来捕获:

>> import pyautogui
>> im = pyautogui.screenshot(region=(0,300,400))

如果你可以只定义你的贪吃蛇游戏的截图区域,它会更快。