2016-12-24 77 views
1

我的代碼:嵌套for循環減慢由於未知原因(AutoIt的)

Func myFunc() 

    $lag = 1300 
    while (1) 
     MouseMove(870, 189) 
     sleep(10) 
     LC(870, 189) 
     sleep(1200 + $lag) 
     LC(1010,333) 
     sleep(100) 
     RC(826,115) 
     sleep(50) 
     LC(870,212) 
     sleep(50) 
     send("{ESC}") 
     sleep(150) 
     $x = 0 
     $y = 0 

     For $i = 0 To 27 Step 1 
      sleep(11) 
      MouseClick("left", 1158 + $x ,260 + $y) 
      $x+=42 
      if ($x = 168) Then 
       $x = 0 
       $y+=36 
      EndIf 
     Next 

    WEnd 

EndFunc 

中的for循環的唯一延遲是睡眠(11),但它需要大約0.5秒(500毫秒)每個迭代而不是11ms +無論什麼小延遲。此外,完全刪除睡眠(11)部分的循環仍然會導致大約500ms的延遲。

任何人想知道,這是一個視頻遊戲宏; while循環的第一部分打開一個界面並設置了一些內容,而第二部分(for循環)則假設非常快地點擊清單。

回答

0

鼠標光標需要時間移動。將速度參數設置爲0使其立即移動

MouseClick("left", 1158 + $x ,260 + $y,1,0)