Kibor |
Отправлено: 24 Ноября, 2013 - 01:40:20
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Делается примерно такой рисунок:
Пишется примерно такой код:
CODE:int Image_0[63][7];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0, PosY_0;
a: if (findimage(1, #Image_0[0][0], 0, #PosX_0, #PosY_0, 0, 0, 1366, 768, -1)==1)
{
mouse(LEFT, PosX_0+20, PosY_0+2);
sleep(1000);
goto a;
}
sleep(100);
goto a;
Все примерно, так как надо узнать какие части надписи не являются динамичными, то есть не зависят от фона. Так же по этому скрину нельзя сделать рисунок... |
|
|
Kibor |
Отправлено: 26 Ноября, 2013 - 01:49:38
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Ага. Поиск с левого верхнего угла идет.
Но есть функция сортировки найденных координат, которые упорядочивают массив координат от ближайших к дальним относительно нужной координаты.
CODE:int Image_0[63][25];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512], PosY_0[512];
int k=if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
0, 0, 1366, 768 - координаты поиска
600, 370 - относительно этих координат будут упорядочены массивы координат
в PosX_0[0] PosY_0[0] ближайшие будут
в PosX_0[1] PosY_0[1] следующий по растоянию
и т.д. |
|
|
Kibor |
Отправлено: 26 Ноября, 2013 - 02:44:24
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Код я то приведу... Но прийдется хелп почитать...
Вот код 1:
CODE:int Image_0[63][25];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512], PosY_0[512];
int Image_1[55][22];
loadimage (#Image_1[0][0], "C:\Image_1.bmp");
int Xx, Yy;
int k;
a: k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
if (k>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
mouse(LEFT, PosX_0[0], PosY_0[0]);
sleep(500);
z: if (findimage(1, #Image_1[0][0], 0, #Xx, #Yy, 0, 0, 1366, 768, -1)==0){sleep(50); goto z;}
mouse(LEFT, Xx, Yy);
sleep(500);
}
goto a;
Вот код второй, в котором делается то же, но с правильной структурой программы. Так как это пример простой и в первом случае можно потом запутаться, а с этой структурой ясно все...
CODE:int Image_0[63][25];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512], PosY_0[512];
int Image_1[55][22];
loadimage (#Image_1[0][0], "C:\Image_1.bmp");
int Xx, Yy;
a: if (poisk_Image_0()==1)
{
poisk_Image_1();
}
goto a;
function poisk_Image_0()
{
int k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
if (k>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
mouse(LEFT, PosX_0[0], PosY_0[0]);
sleep(500);
return 1;
}
return 0;
}
function poisk_Image_1()
{
z: if (findimage(1, #Image_1[0][0], 0, #Xx, #Yy, 0, 0, 1366, 768, -1)==0){sleep(50); goto z;}
mouse(LEFT, Xx, Yy);
sleep(500);
}
Не тестировал но вроде нет описок... |
|
|
Kibor |
Отправлено: 26 Ноября, 2013 - 04:09:18
|
Эксперт
Покинул форум
Сообщений всего: 8226
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Все таки были описки...
В первом:
Цитата: a: k=if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
Во втором вместо:
Цитата: if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1)>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
надо
Цитата: int k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1);
if (k>0)
{
sort(600, 370, #PosX_0[0], #PosY_0[0], k);
Исправил.
rev41k пишет: в sort удалил переменную "k"
A это зря... sort |
|
|
|