Lua在for循环期间检查变量

时间:2018-12-19 18:57:43

标签: lua logitech-gaming-software

我很抱歉,因为我已经确定这已经得到了回答,但是由于没有任何编程经验,因此我很难将解决方案从其他文章翻译成我自己的代码。我有一个for循环,我想在每个时间间隔内检查一个全局变量。下面的代码不起作用,因为它认为“ continue_loop”是局部变量。有什么建议吗?

if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
continue_loop = 1
Click()
end

if (event == "M_RELEASED" and arg == 3) then
Click()
end

if (event == "MOUSE_BUTTON_RELEASED" and arg == 1) then
Stopclick()
end

function Stopclick()
continue_loop = 0
end

function Click()
    PressMouseButton(1)
    Sleep (10)
    ReleaseMouseButton(1)
  for i=1,10 do
    if (continue_loop == 1) then
        MoveMouseRelative(0,5)
        Sleep (30)
    else return
    end
    end
  if (continue_loop == 0) then
    Stopclick()
  elseif (continue_loop == 1) then SetMKeyState(3)
  else Stopclick()
  end
end

2 个答案:

答案 0 :(得分:0)

您只需在程序开始时编写一个local continue_loop。 我建议您学习有关变量的可见性范围和生存期的知识,以便更好地了解此解决方案!

答案 1 :(得分:0)

lua只有一个线程,这意味着在for循环期间,continue_loop变量不会更改,因为没有代码尝试在循环内更改它。

您将需要调用一个检查鼠标状态的函数,然后更新continue_loop变量。

for i=1,10 do
    CheckMouseState() -- sets global value of continue_loop based on mouse state.
    if (continue_loop == 1) then
        MoveMouseRelative(0,5)
        Sleep (30)
    else return
    end
end