Добрый день.
Подскажите, есть два монитора: с разрешением 1920х1080 и 2560х1440. Есть программа, которая распознаёт изображение в нижней правой четверти экрана. Например, для экрана 1920х1080 - это область от 1440х810 до 1920х1080, а для 2560х1440 - это от 1920х1080 до 2560х1440.
Как можно оптимизировать код, чтобы при получении программой информации о разрешении экрана, например с помощью команд getmouse и getwindow, область поиска была для разных разрешений экрана соответствующая?
И можно ли как-то визуализировать эту область поиска, например, с помощью выделения рамкой?
1. Kostick - 28 Октября, 2022 - 04:39:54 - перейти к сообщению
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]);
}
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(#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));
Спасибо большое! Не знал, что эту функцию можно и тут использовать