0

是否可以在我释放鼠标按钮 1 后立即停止运行代码,而不必等到循环完成?

EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
  if IsKeyLockOn("capslock")then
    if IsMouseButtonPressed(1) then
      repeat
        MoveMouseRelative(-69,99)
        Sleep(133)
        MoveMouseRelative(11,91)
        Sleep(133)
        MoveMouseRelative(-109,84)
        Sleep(133)
        MoveMouseRelative(-86,75)
        Sleep(133)
        MoveMouseRelative(1,64)
        Sleep(133)
        MoveMouseRelative(33,56)
        Sleep(133)
        MoveMouseRelative(58,47)
        Sleep(133)
        MoveMouseRelative(75,39)
        Sleep(133)
        MoveMouseRelative(84,29)
        Sleep(133)
        MoveMouseRelative(83,18)
        Sleep(133)
        MoveMouseRelative(75,20)
        Sleep(133)
        MoveMouseRelative(60,36)
        Sleep(133)
        MoveMouseRelative(33,49)
        Sleep(133)
        MoveMouseRelative(3,55)
        Sleep(133)
        MoveMouseRelative(-32,69)
        Sleep(133)
        MoveMouseRelative(-55,64)
        Sleep(133)
      until not IsMouseButtonPressed(1)
    end 
  end
end

所以即使我单击鼠标左键,我也必须等到循环完成,所以我想知道是否有办法让程序在我松开鼠标左键的那一刻停止

4

1 回答 1

0

要获得更具响应性的脚本,您需要收紧循环。

您在循环体中多次重复相同的功能(MoveMouseRelative和)。Sleep如果你简化循环体,你可以让它在每次之后检查释放条件Sleep

EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
  if IsKeyLockOn("capslock")then
    if IsMouseButtonPressed(1) then
      local positions = {             -- Move `MoveMouseRelative` args to an 2d array.
          {-69,99},
          {11,91},
          {-109,84},
          {-86,75},
          {1,64},
          {33,56},
          {58,47},
          {75,39},
          {84,29},
          {83,18},
          {75,20},
          {60,36},
          {33,49},
          {3,55},
          {-32,69},
          {-55,64},
      }
      local index = 1
      repeat
        MoveMouseRelative(positions[index][1], positions[index][2])        
        Sleep(133)
        index = (index % #positions) + 1 -- loop index when it reaches the array length.
      until not IsMouseButtonPressed(1)
    end 
  end
end
于 2020-08-11T19:51:36.330 回答