试图在python中找到一种颜色并点击它

1 人不认可

我是一个python的初学者,我对自动化感兴趣,(键盘和鼠标运动!)为了尝试pyautogui的新东西,我想看看我是否可以看到一个图像或颜色,然后点击它。为了做到这一点,我认为一个离线游戏可能是好的,因为我可以在自己的时间内完成它,这将是一个有趣的项目。

按钮 = "Playagain.png" pyautogui.doubleClick(button)

我试着用一个变量和pyautogui中的双击功能,但这并不奏效。我试着看是否能抓住按钮的颜色,但这很困难,我不明白。因此,如果有人能帮助我,那将是非常好的

一些额外的信息可能是。再次播放按钮总是在同一个地方,但它出现的时间不同。它可能在10秒或30秒时出现,这就是为什么我想使用图像或颜色识别,因为它将是效率的100倍。

1 个评论
请提供足够的代码,以便其他人能够更好地理解或重现这个问题。
python
pyautogui
jld 2709
jld 2709
发布于 2021-12-24
2 个回答
PG11
PG11
发布于 2022-07-12
0 人赞同

你的例子没有工作,因为 pyautogui.doubleclick 将屏幕坐标作为输入。你需要使用 定位功能 来定位屏幕上的图像,然后将检测到的图像的坐标传递给 doubleclick 。这是文档中的一个例子。

import pyautogui
x, y = pyautogui.locateCenterOnScreen('image.png')
pyautogui.click(x, y)
    
谢谢你的建议,我按你说的做了,现在看起来是这样的: button = pyautogui.locateCenterOnScreen('Playagain.png') pyautogui.click(button) 但它似乎没有工作。
PG11
你的鼠标是否移动到了预期的位置 pyautogui.moveTo(button) ?如果没有检测到图像,Locate函数返回None。所以你可以检查 button 是无还是有效坐标的元组
可悲的是,鼠标根本就不动。
PG11
看起来你的 button 变量是 None 。如果是这样的话,图像就没有被检测到,这可能意味着它不在屏幕上。
我有两个显示器,你建议我把游戏切换到另一个显示器上吗? 这可能是问题所在
KingTheSuspect
KingTheSuspect
发布于 2022-07-12
0 人赞同
import pyautogui
color = (75, 219, 106)
def clicker():
    while True:
        x, y = pyautogui.position()
        pixelColor = pyautogui.screenshot().getpixel((x, y))
        if pixelColor == color:
            pyautogui.click()
def main():