Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как масштабировать область поиска изображения для разных разрешений

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

1. Kostick - 28 Октября, 2022 - 04:39:54 - перейти к сообщению
Добрый день.
Подскажите, есть два монитора: с разрешением 1920х1080 и 2560х1440. Есть программа, которая распознаёт изображение в нижней правой четверти экрана. Например, для экрана 1920х1080 - это область от 1440х810 до 1920х1080, а для 2560х1440 - это от 1920х1080 до 2560х1440.
Как можно оптимизировать код, чтобы при получении программой информации о разрешении экрана, например с помощью команд getmouse и getwindow, область поиска была для разных разрешений экрана соответствующая?
И можно ли как-то визуализировать эту область поиска, например, с помощью выделения рамкой?
2. Zireael - 28 Октября, 2022 - 05:32:23 - перейти к сообщению
При разных разрешениях изображение будет отличаться и не найдётся.
От идеи использования скрипта на разных разрешениях лучше сразу отказаться. Запускать игру в оконном режиме и делать скрипт под определённое разрешение.

 Цитата:
можно ли как-то визуализировать эту область поиска, например, с помощью выделения рамкой?

CODE:
int array[1920][1080];
initialarray(#array[0][0], 255);

visual(200, 100, 700, 500, 3); // координаты рамки и толщина линии
loop()sleep(10);


function visual(int sx, int sy, int ex, int ey, int width)
{
visualwindow(0, 0, 0, ex-sx, width, sx, sy, 100, #array[0][0]);
visualwindow(1, 0, 0, width, ey-sy, sx, sy, 100, #array[0][0]);
visualwindow(2, 0, 0, ex-sx+width, width, sx, ey, 100, #array[0][0]);
visualwindow(3, 0, 0, width, ey-sy, ex, sy, 100, #array[0][0]);
}
3. Kostick - 28 Октября, 2022 - 07:50:45 - перейти к сообщению
 Zireael пишет:

CODE:
int array[1920][1080];
initialarray(#array[0][0], 255);

visual(200, 100, 700, 500, 3); // координаты рамки и толщина линии
loop()sleep(10);


function visual(int sx, int sy, int ex, int ey, int width)
{
visualwindow(0, 0, 0, ex-sx, width, sx, sy, 100, #array[0][0]);
visualwindow(1, 0, 0, width, ey-sy, sx, sy, 100, #array[0][0]);
visualwindow(2, 0, 0, ex-sx+width, width, sx, ey, 100, #array[0][0]);
visualwindow(3, 0, 0, width, ey-sy, ex, sy, 100, #array[0][0]);
}


В вашем коде рамка будет красной, а как поменять цвет рамки, например, на зеленый? Понимаю, что это надо делать в функции initialarray, а как, не могу понять.
4. Zireael - 28 Октября, 2022 - 17:47:26 - перейти к сообщению
 Цитата:
а как поменять цвет рамки, например, на зеленый?

CODE:
initialarray(#array[0][0], rgb(0, 255, 0));
5. Kostick - 29 Октября, 2022 - 09:11:05 - перейти к сообщению
 Zireael пишет:
 Цитата:
а как поменять цвет рамки, например, на зеленый?

CODE:
initialarray(#array[0][0], rgb(0, 255, 0));

Спасибо большое! Не знал, что эту функцию можно и тут использовать

Powered by ExBB FM 1.0 Final