Перемещение в точку A — точку B

#lua

Вопрос:

У меня возникли проблемы с тем,чтобы механизм перемещения работал плавно от 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, он продолжает выдавать мне ошибку.

Комментарии:

1. вы должны поделиться фактическим сообщением об ошибке. «ошибка» не очень полезна

2. MoveMouseRelative принимает расстояние в пикселях для относительного перемещения. Вы передали абсолютные координаты в непиксельных единицах измерения.

Ответ №1:

 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 value limit и step только третье выражение step является необязательным (см. Квадратные скобки).

В своем коде вы не указали ограничение.

Кроме того, у вас может быть не просто номер в вашем коде, как тот 2015 , который идет после вашего do . Это также синтаксическая ошибка.

Пожалуйста, прочтите руководство Lua. https://www.lua.org/manual/5.4/manual.html#3.3.5

В дальнейшем ваш код не дает ничего полезного.

Вы просто назначаете одни и те же константы снова и снова в своем цикле. Поскольку x1 и y1 никогда не меняются, и ваше условие всегда будет выполнено, цикл while будет выполняться вечно. Вызывая относительное движение мыши (41219; 36446) каждую секунду, что является полной ерундой.

Я предлагаю вам начать с ручки и бумаги. Подумайте о своей проблеме. Убедитесь, что ваши действия имеют смысл. Затем реализуйте его в Lua, ссылаясь на руководство Lua.