首页 > 解决方案 > pyautogui locateAllOnScreen 我如何从列表中删除它?

问题描述

我是 python 新手,我正在尝试为游戏做机器人。游戏的目的是当鼠标停留在盒子上时,颜色变得明显。单击该框,直到颜色变为绿色。该代码有效,但它会单击每个框一次,即使在框变为绿色之后,它也会返回该框并检查它。由于游戏中有 30 多个盒子,因此浪费了很多时间。我想要的是来到该框一次并单击直到它变成绿色,然后从框列表中删除该框。我怎样才能做到这一点 ?

import pyautogui as pg
import keyboard
import time
import pydirectinput

if pg.locateOnScreen('box.png', confidence=0.9):
    boxs = pg.locateAllOnScreen('box.png', confidence=0.9)
    for box in boxs:
        pg.moveTo(box)
        time.sleep(.2)
        if pg.locateOnScreen('red', confidence=0.95) or pg.locateOnScreen('orange',
                                                                             confidence=0.95) or pg.locateOnScreen(
                'blue', confidence=0.95) or pg.locateOnScreen('white', confidence=0.95) or pg.locateOnScreen(
                'brown', confidence=0.95) or pg.locateOnScreen('black', confidence=0.95):
            pg.mouseDown()
            pg.mouseUp()

标签: pythonpyautogui

解决方案


推荐阅读