werter85 |
Отправлено: 21 Ноября, 2014 - 00:32:51
|
Прохожий
Покинул форум
Сообщений всего: 9
Дата рег-ции: Нояб. 2014
Репутация: 0
|
Помогите создать не простой цикл.
Есть цикл в котором нужно в определённом порядке по определённым координатам делать клики. Для этого я выбрал точку отсчёта Image_1 и уже относительно неё при клике корректирую координаты.
Как сделать так, чтобы при первом проходе, клик проходил по первым координатам, второй по вторым, третий по третьим? и т.д. И мне кажется что лучше всего этот цикл сделать в функции.
Прокатит ли следующий вариант?
int z=0;
function click()
{
z++
if (z=1);
{
findimage(-1, #Image_1[0][0], 0, #X[0], #Y[0], 0, 0, 1920, 979, -1);
mouse(LEFT, X[0]+20, Y[0]+80);
}
if (z=2);
{
findimage(-1, #Image_1[0][0], 0, #X[0], #Y[0], 0, 0, 1920, 979, -1);
mouse(LEFT, X[0]+20, Y[0]+50);
}
if (z=3);
{
findimage(-1, #Image_1[0][0], 0, #X[0], #Y[0], 0, 0, 1920, 979, -1);
mouse(LEFT, X[0]+50, Y[0]+60);
}
} |
|
|
Kibor |
Отправлено: 21 Ноября, 2014 - 01:08:01
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Цитата: int xx[3], yy[3];
xx[0]=20; yy[0]=80;
xx[1]=20; yy[1]=50;
xx[2]=50; yy[2]=60;
int x, y;
for (int h=0; h<3; h++)
{
if (findimage(1, #Image_1[0][0], 0, #x, #y, 0, 0, 1920, 979, -1)==1) mouse(LEFT, x+xx[h], y+yy[h]);
}
|
|
|
werter85 |
Отправлено: 21 Ноября, 2014 - 18:44:06
|
Прохожий
Покинул форум
Сообщений всего: 9
Дата рег-ции: Нояб. 2014
Репутация: 0
|
Спасибо! Всё работает, но немного не так как я хотел. Наверное плохо объясняю )
В данном коде все 3 клика делаются подряд, пока h будет меньше 3. И только потом происходит выполнение остального кода.
Мне нужно сделать чтобы данный код выполнился 1 раз и продолжил работу, при повторном попадании на данный участок кода, кликало по вторым координатам и т.д.
Пока писал решил задачу:
int h=0;
int x, y;
int xx[3], yy[3];
xx[0]=20; yy[0]=80;
xx[1]=20; yy[1]=50;
xx[2]=50; yy[2]=60;
if ( h<3)
{
if (findimage(1, #Image_1[0][0], 0, #x, #y, 0, 0, 1920, 979, -1)==1) mouse(LEFT, x+xx[h], y+yy[h]);
h++;
}
Теперь пока код работает идёт перебор координат от 0 до 2. Если код остановить, то при новом запуске перебор начнётся с начала. |
|
|
Kibor |
Отправлено: 21 Ноября, 2014 - 20:46:48
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
werter85 пишет: int h=0;
int x, y;
int xx[3], yy[3];
xx[0]=20; yy[0]=80;
xx[1]=20; yy[1]=50;
xx[2]=50; yy[2]=60;
if ( h<3)
{
if (findimage(1, #Image_1[0][0], 0, #x, #y, 0, 0, 1920, 979, -1)==1) mouse(LEFT, x+xx[h], y+yy[h]);
h++;
}
так можно
CODE:int h=0;
int x, y;
int xx[3], yy[3];
xx[0]=20; yy[0]=80;
xx[1]=20; yy[1]=50;
xx[2]=50; yy[2]=60;
if (findimage(1, #Image_1[0][0], 0, #x, #y, 0, 0, 1920, 979, -1)==1) mouse(LEFT, x+xx[h], y+yy[h]);
h++;
if ( h==3)h=0;
|
|
|
|