Zireael |
Отправлено: 20 Октября, 2019 - 16:46:10
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: что при нахождении картинки он запишет координаты в x1 и y1. но увы
Запишет если найдёт картинку. В данном случае искать надо не картинку, а цвет, т. е. использовать findcolor или findheapcolor.
Визуальным редактором не пользуюсь, как в нём сделать не знаю.
Смысл такой:
code (Отобразить)CODE:int colorw, xw, yw;
getdisplay(colorw, xw, yw); // получаем разрешение экрана
int screenshot[1920][1080]; // массив для сохранения скрина
// параметры для распознавания оранжевой подсветки
int r1=20; // разбежность цвета
int color1[1]={4689884} // цвет
int kol1[1]={20}; // сколько минимально пикселей надо найти
int x1, y1; // переменные для координат
// параметры для распознавания зелёных цифр
int r2=20;
int color2[1]={2777394}
int kol2[1]={10};
int x2, y2;
int x3, y3; // переменные для координат распознавания текста
loop()
{
if(screen (#screenshot[0][0], 0, 0, xw, yw, -1)==1) // сделать скрин
{
// поиск оранжевой подсветки
if(findheapcolor(1, #color1[0], #kol1[0], 1, 1, #x1, #y1, 20, 20, 50, 50, 0, 0, xw, yw, r1,r1,r1,r1,r1,r1, #screenshot[0][0])>0)
{
mousemove(x1, y1);
pause(2000);
// поиск зелёных цифр
if(findheapcolor(1, #color2[0], #kol2[0], 1, 1, #x2, #y2, 20, 20, 50, 50, x1, y1-20, xw, y1+20, r2,r2,r2,r2,r2,r2, #screenshot[0][0])>0)
{
mousemove(x1+x2, y1-20+y2);
pause(2000);
// записываем в каких координатах будет распознаваться текст
x3=x1+x2-20;
y3=y1-20;
// зона поиска для распознавания
mousemove(x3, y3);
pause(1000);
mousemove(x3+120, y3+40);
pause(1000);
// тут распознавание текста readtext в координатах x3, y3, x3+120, y3+40 на скрине #screenshot[0][0]
}
}
}
sleep(200);
} |
|
|
|