Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Справка по функциям

Страниц (9): « 1 2 3 4 5 6 7 [8] 9 »
 

71. Zireael - 23 Апреля, 2023 - 14:00:41 - перейти к сообщению
 Цитата:
-32000, -32000

Вроде бы это окно свернутое на панель задач.
findimage возвращает код ошибки, смотрите что возвращает.
 Цитата:
1449, 229, 1449, 671

Зона поиска по X должна быть хотя 1 пиксель.
72. 1st - 23 Апреля, 2023 - 17:50:50 - перейти к сообщению
Да, большое спасибо, я заметил это уже после отправки сообщения и подумал, что может он просто не видит координаты или указанное окно.
Правда в итоге он всё равно не реагировал, но помогло перезапуск игры на других настройках.
Теперь находит картинку. Но я что-то не могу понять как записать клик или перемещение в центр найденной картинки. Сейчас он уводит либо в верхний левый угол экрана, либо в угол игрового окна, если в конце после координат, добавляю указание окна.
CODE:
win w=window (-1, -1, -1, -1, 1920, 1061, -1);
if (w==0){messagebox ("Нет окна");}
activate(w);
pause(1000);


int тест[22][22];
if (load_images()==-1){messagebox (нету картинки);}


тревел();




function тревел()
{
int x, y;
sleep(5000);
while (findimage(1, #тест[0][0], 0, #x, #y, 1787, 714, 1897, 744, 20, 50, 50, 70, 10, 20, 33, 1, w)==1) mousemove(x, y, w);
messagebox ("НЕТ");
pause(12200);
}







function load_images()
{
if (loadimage (#тест[0][0], "C:\Users\gnom\Documents\KB\тест.bmp")<1) return -1;
return 1;
{messagebox (Всё супер);}

}


Я так понимаю, что в целом я могу брать часть когда, вставлять его в визуальном редакторе в блок кода и дальше добавлять какие-то действия. Но хотелось бы разобраться.
Заранее спасибо
73. Zireael - 23 Апреля, 2023 - 23:34:00 - перейти к сообщению
 Цитата:
уводит либо в верхний левый угол экрана, либо в угол игрового окна

Нужно прибавить кординаты начала поиска.
CODE:
mousemove(x+1787, y+714, w);

Чтобы кликнуть в центр картики нужно прибавить половину шинины и высоты этой картинки.
74. 1st - 24 Апреля, 2023 - 12:55:30 - перейти к сообщению
 Zireael пишет:
 Цитата:
уводит либо в верхний левый угол экрана, либо в угол игрового окна

Нужно прибавить кординаты начала поиска.
CODE:
mousemove(x+1787, y+714, w);

Чтобы кликнуть в центр картики нужно прибавить половину шинины и высоты этой картинки.


Всё получилось, большое спасибо.
75. Paskuda - 10 Октября, 2023 - 10:29:02 - перейти к сообщению
Всем привет, как то странно ведет себя функция findimage() если размер массива превышает размер картинки по Х.
CODE:

int IMG[75][10];
loadimage (#IMG[0][0], D:\kibor_set\Image.bmp"); //Картинка 70х10

int Res=findimage(1, #IMG[0][0], -1, #PosX[0], #PosY[0], 0, 0, 1280, 1024, 20, 20, 20, 20, 20, 20, 80, 1, -1);

Возвращает -4. При этом если указать размер по Y хотя бы на 1рх больше:
CODE:

int IMG[75][11];

отрабатывает нормально.
76. Kibor - 10 Октября, 2023 - 13:05:44 - перейти к сообщению
 Paskuda пишет:
Всем привет, как то странно ведет себя функция findimage() если размер массива превышает размер картинки по Х.

Исправил.
77. Karkun - 12 Октября, 2023 - 08:41:42 - перейти к сообщению
у меня при каждом поиске findimage в программе вылетает окно с цифрой два. вчера этого не было
78. Kibor - 12 Октября, 2023 - 08:43:59 - перейти к сообщению
Исправил. Обновил
79. neba2101 - 02 Декабря, 2023 - 05:40:27 - перейти к сообщению
 Цитата:
Так же в качестве последнего параметра можно указать указатель на двухмерный массив int в котором хранится изображение.
В этом случае будет искаться в нем.
CODE:

findimage(1, #Image[0][0], 16777215, #x[0], #y[0], 0, 0, 50, 50, #image_skrin[?][0][0]);


В массиве картинок нельзя искать?
80. Kibor - 02 Декабря, 2023 - 06:09:10 - перейти к сообщению
 neba2101 пишет:
В массиве картинок нельзя искать?

Такой поиск бессмыслен для получения координат.

Для сканирования группы изображений на наличие в них какого то объекта надо применять такой алгоритм.
CODE:
int Image[100][100];
loadimage (#Image[0][0], "D:\Image_find.bmp");

int Image_0[1000][1000];
int PosX, PosY;
for (int n=0; n<100; n++)
{
loadimage (#Image_0[0][0], "D:\Image_"+format(n)+".bmp");
if (findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), #Image_0[0][0]))
{
messagebox ("Нашли в "+format (n));
}
}

Powered by ExBB FM 1.0 Final