有人可以帮助我加快 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%
所以我制作了一个机器人来尝试玩这个仿冒钢琴块游戏: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%