如何使用同一按键控制两个变量?(LUA)

例子:如果我按下M6按钮,光标会移动到X位置,再次按下M6按钮时光标会移动到Y位置,那么我应该如何进行这种交替操作?

local TOPX, TOPY, MIDX, MIDY

TOPX = 59305        -- 顶部X坐标
TOPY = 54527        -- 顶部Y坐标
MIDX = 61764        -- 中部X坐标
MIDY = 58683        -- 中部Y坐标

function OnEvent(event, arg)
        for n = 1,2
            do
            if      event == "MOUSE_BUTTON_RELEASED" and arg == 6 then
                            MoveMouseTo(MIDX, MIDY);
        for n = 2,4
            do
                if
                    event == "MOUSE_BUTTON_RELEASED" and arg == 6 then
                            MoveMouseTo(TOPX, TOPY);

end
end
end
end
end
点赞
用户12782883
用户12782883

一种方法是使用一个外部的布尔变量,它允许你识别M6按钮按下的状态。

local buttonPressedOnce = true

function onEvent(event, arg)
    -- 检查按钮是否是我们需要的。

    if (event == "MOUSE_BUTTON_RELEASED" and arg == 6) then
        if (buttonPressedOnce) then
            -- 执行X更新代码
        else
            -- 执行Y更新代码
        end

        buttonPressedOnce = not(buttonPressedOnce)
    end
end

解释:第一次按下按钮总是会执行X轴更新代码,因此我们将标志初始化为true,并在每次单击后继续更新标志值,确保每个按钮按下都会切换到所需的状态。

2021-03-23 02:07:39