2015-09-20 51 views
0

hello im newbie to this macro program。它是完美的工作正常,我想循環點擊綠色按鈕像素,直到其屏幕,但每次有2個或更多或另一個綠色像素出現。它點擊它,即使它沒有成功點擊它看到的第一個像素,直到它消失,並堅持點擊它看到並出現的任何新的綠色像素..任何人都可以提出任何想法如何實現它?是否可以設置像素搜索優先級?

繼承人的gif動畫圖像 http://i.imgur.com/f9TdXAa.gifv

Loop { 
PixelSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, 0x00FF00, 0, fast 
     if(ErrorLevel=0) { 
       MouseClick, left, %X%, %Y% 
      sleep, 300 



     } 

回答

0

...任何人都可以提出任何想法如何實現的呢?

我有一個主意!如果在x,y位置檢測到您的綠點後,您可以使用相同的像素搜索命令運行不同的例程/循環,而不是使用整個屏幕,可以計算圍繞對象的窄場......比當對象不再目前,返回到搜索整個屏幕以找到另一個對象的主循環!

未測試!但應該是這樣的:

MainLoop() { 
Loop { 
    PixelSearch, X, Y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, 0x00FF00, 0, fast 
     if(ErrorLevel=0) { 
       MouseClick, left, %X%, %Y% 
      sleep, 300 
      RefinedLoop(x, y) 
} 

RefinedLoop(pX, pY) { 
    Loop { 
     pX := X + 50 
     pY := y + 50 
     dX := X - 50 
     dY := Y - 50 
     PixelSearch, X, Y, %pX%, %pY%, %dX%, %dY%, 0x00FF00, 0, fast 
      if(ErrorLevel=0) { 
       MouseClick, left, %X%, %Y% 
       sleep, 300 
      } 
      Else if (ErrorLevel <> 0) 
       i++ 
      If (i > 10) 
       MainLoop() 
    } 
}