Кибор » Кибор - Интегрированная среда разработки ботов » Готовые скрипты » Пример использования своей функции для поиска изображений

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

1. Kibor - 07 Января, 2014 - 23:16:12 - перейти к сообщению
Пример как можно упростить программирование поиска изображений с помощью своей функции. Не использовать там где надо многократно искать такое изображение.
Пример скорее теоретический, чем практический, так как при каждом поиске выполняется загрузка изображения с файла, определение разрешения экрана. Да и параметры findimage для каждого случая могут быть разные. Тут просто ищется по экрану при полном совпадение изображений.
Единственный плюс (довольно скользкий) - простота использования поиска изображений.

Функцию
CODE:
function find_image(string pyt)
{
int Image[250][250];
if (loadimage (#Image[0][0], pyt)<1)return 0;
int col, ex, ey;
getdisplay(col, ex, ey);
return findimage(1, #Image[0][0], -1, #x, #y, 0, 0, ex, ey, -1);
}

Надо вставить в конец своего скрипта.

Использовать так:
CODE:
int x, y;//Объявляем переменные в начале скрипта

//Ищем рисунки
if (find_image("C:\1.bmp")>0) mousemove(x, y);//Навести мышь на первый рисунок если нашли

if (find_image("C:\2.bmp")>0) mousemove(x, y);//Навести мышь на второй рисунок если нашли

if (find_image("C:\3.bmp")>0) mousemove(x, y);//Навести мышь на третий рисунок если нашли




//Эту функцию кидаем в конец скрипта
function find_image(string pyt)
{
int Image[250][250];
if (loadimage (#Image[0][0], pyt)<1)return 0;
int col, ex, ey;
getdisplay(col, ex, ey);
return findimage(1, #Image[0][0], -1, #x, #y, 0, 0, ex, ey, -1);
}
//Конец функции





Вот как правильно искать изображения:
CODE:
int x, y;//Объявляем переменные в начале скрипта

int Image1[250][250];
loadimage (#Image1[0][0], "C:\1.bmp");
int Image2[250][250];
loadimage (#Image2[0][0], "C:\2.bmp");
int Image3[250][250];
loadimage (#Image3[0][0], "C:\3.bmp");

int col, ex, ey;
getdisplay(col, ex, ey);


if (findimage(1, #Image1[0][0], -1, #x, #y, 0, 0, ex, ey, -1)==1) mousemove(x, y);//Навести мышь на первый рисунок если нашли

if (findimage(1, #Image2[0][0], -1, #x, #y, 0, 0, ex, ey, -1)==1) mousemove(x, y);//Навести мышь на второй рисунок если нашли

if (findimage(1, #Image3[0][0], -1, #x, #y, 0, 0, ex, ey, -1)==1) mousemove(x, y);//Навести мышь на третий рисунок если нашли


В этом случае нам не надо сто раз загружать с файла один и тот же рисунок.

Ознакомиться с loadimage тут

Ознакомиться с findimage тут
Так же тут
Демо скрипт тут

Как использовать графический редактор в Кибор тут.

Эта тема призвана пояснить почему Кибор имеет более сложную структуру языка по сравнению с другими подобными программами. Потому что это более эффективно.
2. dmh - 15 Сентября, 2014 - 04:08:14 - перейти к сообщению
С чем связанно предупреждение "Не использовать там где надо многократно искать такое изображение"? Просто я так всегда делаю.
3. Kibor - 15 Сентября, 2014 - 04:10:00 - перейти к сообщению
С тем что в первом коде лишнее постоянно грузить с файла картинку.

Powered by ExBB FM 1.0 Final