Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как заставить мышью сделать круг

Страниц (1): [1]
 

1. Kostick - 31 Декабря, 2021 - 13:55:57 - перейти к сообщению
Здравствуйте. Допустим есть круг с диаметром 40 пикселей. Центр круга в координатах (100, 100). Нужно, чтобы мышь перемещалась по этому кругу или по многоугольнику. Я могу сделать движение мышь с помощью команды "mousemove", в ручную выбрав координаты, например, сделать 16-тиугольник. Но можно ли это сделать с помощью математической формулы, цикла или ещё как-то? Например, чтобы было больше 16-ти точек, чтоб было более плавное движение.
2. Zireael - 31 Декабря, 2021 - 14:01:39 - перейти к сообщению
CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * cos(i);
y = 100 + 40 * sin(i);
mousemove (x, y);
sleep (1);
}
3. Kostick - 31 Декабря, 2021 - 14:06:02 - перейти к сообщению
 Zireael пишет:
CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * cos(i);
y = 100 + 40 * sin(i);
mousemove (x, y);
sleep (1);
}

Не могу сейчас опробовать, но я так понимаю, это по часовой стрелке. А как сделать, чтоб мышь двигалась против часовой стрелки?
4. Zireael - 31 Декабря, 2021 - 14:09:25 - перейти к сообщению
 Цитата:
как сделать, чтоб мышь двигалась против часовой стрелки?

CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * sin(i);
y = 100 + 40 * cos(i);
mousemove (x, y);
sleep (1);
}
5. Kostick - 31 Декабря, 2021 - 14:12:25 - перейти к сообщению
 Zireael пишет:
 Цитата:
как сделать, чтоб мышь двигалась против часовой стрелки?

CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * sin(i);
y = 100 + 40 * cos(i);
mousemove (x, y);
sleep (1);
}

Хех, понял, завтра попробую, спасибо большое, с Наступающим/наступившимУлыбка
6. Kostick - 01 Января, 2022 - 08:20:35 - перейти к сообщению
 Zireael пишет:
CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * cos(i);
y = 100 + 40 * sin(i);
mousemove (x, y);
sleep (1);
}

Да, спасибо, все замечательно.
А как сделать, чтобы мышь двигалась по часовой стрелке, но в определенный момент стала двигаться в обратную сторону. Т.е. начался новый цикл против часовой стрелки, но мышь начала с того момента, где остановилась на цикле по часовой стрелке. И наоборот.
Просто у меня задача:
При появлении надписи "отпустить" - нужно крутить против часовой стрелки, потом появляется надпись "подтянуть" - нужно крутить по часовой стрелке, и нужно из тех же координат двигать мышкой.
Да, в цикле она заканчивает в одном и том же месте, что по часовой, что против, но видимо в игре есть мнимая мышь, которая останавливается, когда сменяется надпись, и из-за этого происходит баг подтягивания, когда мышь прыгает с одной точки на другую.
7. Zireael - 01 Января, 2022 - 08:36:06 - перейти к сообщению
 Цитата:
При появлении надписи "отпустить" - нужно крутить против часовой стрелки, потом появляется надпись "подтянуть" - нужно крутить по часовой стрелке, и нужно из тех же координат двигать мышкой.

CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * sin(i);
y = 100 + 40 * cos(i);
mousemove (x, y);
sleep (10);

// тут условие выхода из цикла
// поиск картинки или ещё что-то
// это для примера:
if(i>200)break;
}


for (int j=i; j>0; j=j-5)
{
x = 100 + 40 * sin(j);
y = 100 + 40 * cos(j);
mousemove (x, y);
sleep (10);
}
8. Kostick - 01 Января, 2022 - 08:45:12 - перейти к сообщению
 Zireael пишет:
 Цитата:
При появлении надписи "отпустить" - нужно крутить против часовой стрелки, потом появляется надпись "подтянуть" - нужно крутить по часовой стрелке, и нужно из тех же координат двигать мышкой.

CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * sin(i);
y = 100 + 40 * cos(i);
mousemove (x, y);
sleep (10);

// тут условие выхода из цикла
// поиск картинки или ещё что-то
// это для примера:
if(i>200)break;
}


for (int j=i; j>0; j=j-5)
{
x = 100 + 40 * sin(j);
y = 100 + 40 * cos(j);
mousemove (x, y);
sleep (10);
}

Пример:(для просмотра ссылки Вам необходимо авторизоваться) Как видно из видео, ползунок остановился чуть левее, а круг начался как обычно снизу.
Т.е. тут привязка не к размеру переменной i, чтобы можно было использовать
 Цитата:
if(i>200)break;

Т.к. я делаю в визуальном редакторе, я бы хотел показать алгоритм
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Тут идет поиск изображения слова "натянуть" и "ослабить", и в зависимости от них тот или иной цикл.
А, увидел, что
 Цитата:
for (int j=i; j>0; j=j-5)

Сейчас попробую
(Добавление)
 Kostick пишет:
 Zireael пишет:
 Цитата:
При появлении надписи "отпустить" - нужно крутить против часовой стрелки, потом появляется надпись "подтянуть" - нужно крутить по часовой стрелке, и нужно из тех же координат двигать мышкой.

CODE:
int x, y;

for (int i=0; i<360; i=i+5)
{
x = 100 + 40 * sin(i);
y = 100 + 40 * cos(i);
mousemove (x, y);
sleep (10);

// тут условие выхода из цикла
// поиск картинки или ещё что-то
// это для примера:
if(i>200)break;
}


for (int j=i; j>0; j=j-5)
{
x = 100 + 40 * sin(j);
y = 100 + 40 * cos(j);
mousemove (x, y);
sleep (10);
}

Пример:(для просмотра ссылки Вам необходимо авторизоваться) Как видно из видео, ползунок остановился чуть левее, а круг начался как обычно снизу.
Т.е. тут привязка не к размеру переменной i, чтобы можно было использовать
 Цитата:
if(i>200)break;

Т.к. я делаю в визуальном редакторе, я бы хотел показать алгоритм
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Тут идет поиск изображения слова "натянуть" и "ослабить", и в зависимости от них тот или иной цикл.
А, увидел, что
 Цитата:
for (int j=i; j>0; j=j-5)

Сейчас попробую

Да, все работает. Спасибо большое

Powered by ExBB FM 1.0 Final