首页 > 解决方案 > 相对于 A 点移动鼠标 - B 点

问题描述

我无法让 movemouserelative 从 Fx、Fy 到 Hx、Hy 顺利工作

local x1 = 0
local y1 = 0
function OnEvent(event, arg)
    Fx, Fy = 41220, 36442
    Hx, Hy = 39205, 44459

    while x1 ~= Hx or y1 ~= Hy  do
        for i = 0 do 2015
            x1 = Fx - 1
            y1 = Fy + 4 --i got the 4 from subtracting lower fx and hx divide by 2015
            MoveMouseRelative(x1, y1) 
            Sleep(1000)
        end
    end
end

我不知道要在 while 语句中添加什么,它一直给我一个错误。

标签: lua

解决方案


for i = 0 do 2015
  x1 = Fx - 1
  y1 = Fy + 4 --i got the 4 from subtracting lower fx and hx divide by 2015
  MoveMouseRelative(x1, y1) 
  Sleep(1000)
end

这是不正确的。数字 for 循环的语法是:

stat ::= for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end

请注意,在三个控制表达式initial valuelimitstep,只有第三个表达式step是可选的(请参见方括号)。

在您的代码中,您未能提供限制。

2015此外,您的代码中可能不仅有一个数字,就像do. 这也是语法错误。

请阅读 Lua 手册。https://www.lua.org/manual/5.4/manual.html#3.3.5

此外,您的代码没有任何用处。

您只需在循环中一遍又一遍地分配相同的常量。由于 x1 和 y1 永远不会改变,并且您的条件将始终得到满足,因此您的 while 循环将永远运行。每秒造成 (41219; 36446) 的相对鼠标移动,这完全是胡说八道。

我建议你从笔和纸开始。想想你的问题。确保你的行为有意义。然后参考Lua手册在Lua中实现。


推荐阅读