Помощь - Поиск - Пользователи - Календарь
Полная версия: Движение мыши по окружности
UoKit.com Форумы > Кликер > UO Pilot
nykep
хотел чтоб при застревании персонажа происходило движение мыши по окружности с зажатыми кнопками чтоб он нашел выход и вылез из тупика и чтоб не писать десятки мувов решил попробовать через уравнение окружности, но столкнулся с проблемой - когда X достигает значения 1260 или Y значения 520 дискриминант становится отрицательным и скрипт останавливается с ошибкой, таким образом у меня мышь проходит только половину круга начиная слева на 660, 520 идет вниз и заканчивая справа на 1260, 520.
Код

--lua
local r = 300
local x = 660
--local a = 960 --координата центра х
--local b = 520 -- координата центра у
-- центр примерно посередине экрана
repeat
    x = x + 1
    c = x^2 - 1920*x - r^2 + 520^2 + 960^2
    D = 1040^2 - 4*c
    y = math.modf((1040 + math.sqrt(D))/2)
    move (x, y)
    wait (10)
until y == 220

Может кто сообразит как нарисовать полный круг или обойти это дело другим методом? у меня не получается
cirus
Цитата
как нарисовать полный круг

Код
--lua
local r = 300    -- радиус окружности
local startX, startY = 960, 520   -- центр круга
for i = 1, 360 do
   local x = startX + math.floor(math.sin(math.rad(i)) * r)
   local y = startY + math.floor(math.cos(math.rad(i)) * r)
   move (x, y)
   wait (5)
end
end_script ()
nykep
Цитата(nykep @ 16.6.2019, 0:17) *

спасибо, теперь пытаюсь это подогнать в мой скрипт и у меня рисует окружность только в профиль ))))

а просто Х на Y не поменял в одном месте ))
FREEON
Цитата(cirus @ 16.6.2019, 0:01) *

Код
--lua
local r = 300    -- радиус окружности
local startX, startY = 960, 520   -- центр круга
for i = 1, 360 do
   local x = startX + math.floor(math.sin(math.rad(i)) * r)
   local y = startY + math.floor(math.cos(math.rad(i)) * r)
   move (x, y) -- движение мыши против часовой стрелки
   wait (5)
end
end_script ()


Код

--lua
local r = 150    -- радиус окружности
local startX, startY = 425, 307    -- центр круга
for i = 180, 540 do
   local x = startX + math.floor(math.cos(math.rad(i)) * r)
   local y = startY + math.floor(math.sin(math.rad(i)) * r)
   move (x, y) -- движение мыши по часовой стрелке
   wait (5)
end
end_script ()
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.