

Участник

Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2024
Репутация: 0

|
Anonymous пишет: Кто знает, есть ли вообще код для проверки визуального (выделить) части экрана?, где находит изображение...например сделал по изображению через визуал быстрой настройки...короче изображения уже нет на экране а оно находит совершенно то чего не должно, через код проверки пишет тоже 1, хотя даже визуально нет такого изображения, вот интересно можно ли проверить где кибор видит ( в какой части экрана) это, и выставить зоны игнорирования потому что начальное изображение менял ни один раз...
CODE:
CODE:string PathToImage = "C:\4.1.bmp"; // путь к картинке
int r = 5; // отклонение в цвете (0-255)
int p = 95; // точность поиска (1-100)
int count = 10; // сколько картинок искать
int ColorFon = 0; // цвет фона, -1 если цвет фона не используется
int array[2560][1440];
initialarray(#array[0][0], rgb(255, 0, 255));
int PosX[99], PosY[99];
int Image0[1920][1080];
if(loadimage(#Image0[0][0], PathToImage) < 0)
{
messagebox("Не удалось загрузить картинку");
}
else
{
int C, W, H;
getdisplay(C, W, H);
int t = gettime();
int result = findimage(SWIFT, count, #Image0[0][0], ColorFon, #PosX[0], #PosY[0], 0, 0, W, H, r,r,r,r,r,r,p,1,-1);
messagebox("На поиск затрачено времени: " +format(gettime()-t)+"^r^nНайдено изображений: "+format(result));
for(int i=0; i < result; i++) visual(i * 4, PosX[i], PosY[i], PosX[i] + imagewidth(#Image0[0][0]), PosY[i] + imageheight(#Image0[0][0]), 3);
sleep(3000);
}
function visual(int i, int sx, int sy, int ex, int ey, int width)
{
visualwindow(i, 0, 0, ex-sx, width, sx, sy, 100, #array[0][0]);
visualwindow(i + 1, 0, 0, width, ey-sy, sx, sy, 100, #array[0][0]);
visualwindow(i + 2, 0, 0, ex-sx+width, width, sx, ey, 100, #array[0][0]);
visualwindow(i + 3, 0, 0, width, ey-sy, ex, sy, 100, #array[0][0]);
}
Вот код с подсветкой найденной зоны
(Добавление)
Anonymous пишет: Кто знает, есть ли вообще код для проверки визуального (выделить) части экрана?, где находит изображение...например сделал по изображению через визуал быстрой настройки...короче изображения уже нет на экране а оно находит совершенно то чего не должно, через код проверки пишет тоже 1, хотя даже визуально нет такого изображения, вот интересно можно ли проверить где кибор видит ( в какой части экрана) это, и выставить зоны игнорирования потому что начальное изображение менял ни один раз...
Если находит излишнее изображение которого нет на экране, значит стоят не те настройки. Например 120 на 100, а надо 100 на 100. Эти настройки подбираются исключительно тестами. Или переделывается исходник. первая цифра это разбежность цвета, вторая это процент отклонения.
При создании исходника нужно искать детали которые есть именно в этом элементе изображения, тогда ложных найденных изображений не будет.
(Добавление)
Anonymous пишет: Evgeniy-39rus пишет: цель простая по сути нужно схватить объект и плавно перенести его в другое место и что бы это всё происходило в фоновом режиме эмулятора LD.
(Добавление)
win w=window ("TheRender", "RenderWindow", window ("LDPlayer", "LDPlayerMainFrame", -1));
{
sendmousetransfer(LEFT, 970, 650, 970, 250, 0.002, w);
}
Вот этот код работает
Ты делал привязку в блоке старт win w=window ("TheRender", "RenderWindow", window ("LDPlayer", "LDPlayerMainFrame", -1));???
если два окна друг поверх друга, кибор не будет в одном из окон сбиваться?
или лучше сделать в разных частях экрана два окна а не на весь?
можно в блоке старт, можно в блоке код, это просто переменная, но она должна стоять до блока с действием захвата и переноса.
Несколько окон эмулятора не будут мешать друг другу, так как у них разные имена и для каждого окна нужен свой бот. Каждый из них живет своей жизнью. |