Zireael |
Отправлено: 12 Января, 2019 - 16:29:56
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
CODE:int r=10; // разбежность
int color[5]={3616870, 12632319, 2885772, 8421504, 4613827}; // цвета
int kol[5]={20, 20, 20, 20, 20}; // количество
int x[100], y[100]; // координаты
sleep(500);
int colors, xw, yw;
getdisplay(colors, xw, yw); // размеры экрана
int time=gettime();
int k=findheapcolor(sizearray(x), #color[0], #kol[0], sizearray(color), 4, #x[0], #y[0], 60, 60, 120, 120, 0, 0, xw, yw, r, r, r, r, r, r, -1);
time=gettime()-time;
textbkcolor (255, 65280);
for(int i=0; i<k; i++)
{
textout(i, x[i], y[i] , format(i), 0);
mousemove(x[i], y[i]);
sleep(100);
}
messagebox("Затрачено времени: "+format(time)+" "+format(k)+" объектов нашли");
Если мобов много сделать скрин и искать на скрине.
Цитата: Можно вообще обойтись findimage
Если точность не 100% это тот ещё тормоз. Тем более искать несколько картинок.
У heap только один минус, для каждого моба свои массивы с данными, что не позволяет искать в цикле. |
|
|
Budni |
Отправлено: 12 Января, 2019 - 18:10:29
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Dantes3000 пишет: Zireael пишет: Если точность не 100% это тот ещё тормоз
Нажмите для увеличения
так там 100% можно делать. видно же, что волосы одинаковые. Даже 10-15 пикселей хватит
Это в данном случае, я в принципе хочу проверить все способы и протестировать на скорость. Так как в каждом случае по разному.
Zireael , То что надо! Спасибо) |
|
|
Budni |
Отправлено: 29 Января, 2019 - 21:30:10
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael , Потребовалось замерить скорость нахождения 1 пикселя, пробовал переделать код, не получается, в чем ошибка?
Цитата:
int r=10; // разбежность
int color[0]=2366701; // цвета
int kol[0]=1; // количество
int x[100], y[100]; // координаты
sleep(500);
int colors, xw, yw;
getdisplay(colors, xw, yw); // размеры экрана
int time=gettime();
int k=findheapcolor(sizearray(x), #color[0], #kol[0], sizearray(color), 1, #x[0], #y[0], 60, 60, 120, 120, 0, 0, xw, yw, r, r, r, r, r, r, -1);
time=gettime()-time;
textbkcolor (255, 65280);
for(int i=0; i<k; i++)
{
textout(i, x[i], y[i] , format(i), 0);
mousemove(x[i], y[i]);
sleep(100);
}
messagebox("Затрачено времени: "+format(time)+" "+format(k)+" объектов нашли" ; (Отредактировано автором: 29 Января, 2019 - 21:32:26) |
|
|
Zireael |
Отправлено: 29 Января, 2019 - 21:41:21
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: int color[0]=2366701; // цвет
int kol[0]=1; // количество
Массивы размером 0, минимум должны быть 1.
Цитата: int color[0]=2366701; // цвет
Так нельзя присваивать значение.
CODE:int color[1]; // объявили массив
color[0]=2366701; // присвоили значение
Или:
CODE:int color[1]={2366701}; // объявили и присвоили |
|
|
Budni |
Отправлено: 29 Января, 2019 - 22:37:13
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael пишет: Цитата: int color[0]=2366701; // цвет
int kol[0]=1; // количество
Массивы размером 0, минимум должны быть 1.
Цитата: int color[0]=2366701; // цвет
Так нельзя присваивать значение.
CODE:int color[1]; // объявили массив
color[0]=2366701; // присвоили значение
Или:
CODE:int color[1]={2366701}; // объявили и присвоили
Спасибо что помогаете, такие нелепые трудности из за того, что только в виз редакторе всё делаю (
Ещё вопрос как задать поиск в определенных координатах? Этих: x=374, y=278, x=432, y=337 |
|
|
|