Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
Kostick
Отправлено: 29 Октября, 2022 - 17:42:56
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020  
Репутация: 1




Добрый день, подскажите, можно ли как-то избавиться от мигания рамки, созданной с помощью visualwindow?
Мигание появляется, если в коде привязать visualwindow к окну вот так (применительно к игре Black Desert Online):
CODE:
win W_Kib;
W_Kib=window ("Black Desert - 428001", "BlackDesertWindowClass", -1);

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

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


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

Также цвет становится черным, хотя должен быть зеленым.

При этом когда пытаешься вывести рамку без привязки, она не мигает:
CODE:
int array[1920][1080];
initialarray(#array[0][0], rgb(0, 255, 0));

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]);
}

Демонстрация мигания на видео:
https://youtu.be/HJZASm6F9jk

(Отредактировано автором: 29 Октября, 2022 - 17:45:44)

 
 Top
Zireael
Отправлено: 29 Октября, 2022 - 18:07:49
Post Id



Пользователь
Эксперт


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




 Цитата:
можно ли как-то избавиться от мигания рамки

Не использовать привязку к окну. Если нужно выводить относительно окна, то к координатам visualwindow прибавить координаты окна.
 
 Top
Kostick
Отправлено: 29 Октября, 2022 - 18:18:29
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020  
Репутация: 1




В общем убрал мигания через привязку к координатам окна, а не к самому окну с помощью W_Kib.leftclient и W_Kib.topclient:
CODE:
win W_Kib;
W_Kib=window ("Black Desert - 428001", "BlackDesertWindowClass", -1);

int X_nach;
int Y_nach;
int X_ogr;
int Y_ogr;

X_nach=W_Kib.leftclient+500; // Начальные координаты области по X
Y_nach=W_Kib.topclient+100; // Начальные координаты области по Y
X_ogr=W_Kib.leftclient+1000; // Конечные координаты области по X
Y_ogr=W_Kib.topclient+500; // Конечные координаты области по Y

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

visual(X_nach, Y_nach, X_ogr, Y_ogr, 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]);
}

(Добавление)
 Zireael пишет:
 Цитата:
можно ли как-то избавиться от мигания рамки

Не использовать привязку к окну. Если нужно выводить относительно окна, то к координатам visualwindow прибавить координаты окна.

После вашего сообщения про textout как раз так и сделал, еще раз благодарю за подсказку.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by