Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Движение мыши по окружности
nykep
сообщение 15.6.2019, 23:54
Сообщение #1


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



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

Может кто сообразит как нарисовать полный круг или обойти это дело другим методом? у меня не получается
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.6.2019, 0:01
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
как нарисовать полный круг

Код
--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 ()
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 16.6.2019, 0:23
Сообщение #3


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



Цитата(nykep @ 16.6.2019, 0:17) *

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

а просто Х на Y не поменял в одном месте ))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 17.8.2019, 16:59
Сообщение #4


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(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 ()
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 14:24
Designed by Nickostyle