我試圖在某個彩色像素出現(xiàn)在定義的屏幕截圖中時單擊它,然后重新截取屏幕截圖并掃描更多特定彩色像素,并在找到一個像素后單擊一個像素,依此類推。我認(rèn)為我的代碼正在截屏然后掃描顏色的像素,一旦找到顏色就點擊它,但它不會重新截屏,而是繼續(xù)掃描該屏幕截圖以獲得更多具有匹配顏色的像素并點擊它們。一旦找到并單擊像素,如何打破掃描像素的 for 循環(huán),然后重新開始截取屏幕截圖的過程?我的代碼如下,謝謝!from pyautogui import *import pyautoguiimport timeimport keyboardimport randomimport win32api, win32contime.sleep(2)def click(x,y): win32api.SetCursorPos((x,y)) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)#Color of enemy: (254, 118, 136)while keyboard.is_pressed('q') == False: range1 = 250 range2 = 258 range3 = 114 range4 = 125 range5 = 122 range6 = 148 pic = pyautogui.screenshot() width, height = pic.size pic = pyautogui.screenshot(region=(((0.5*width)-100),(0.5*height-100),200,200)) width, height = pic.size for x in range(0,width,1): for y in range(0,height,1): r,g,b = pic.getpixel((x,y)) if (((r in range(range1,range2))and(g in range(range3,range4)))): #and(b in range(range5,range6)))): moveTo(x+width,y+height) click(x+width,y+height) time.sleep(0.1) break
1 回答

繁星點點滴滴
TA貢獻1803條經(jīng)驗 獲得超3個贊
不是一個完整的答案,但你的問題是中斷只是從 y 上的第一個循環(huán)中出來,而不是在 x 上的循環(huán)中。一個解決方案是為你的循環(huán)創(chuàng)建一個函數(shù)并從函數(shù)中返回
添加回答
舉報
0/150
提交
取消