Nathgul |
Отправлено: 19 Июня, 2018 - 07:57:32
|
Участник
Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018
Репутация: 0
|
Kibor пишет: Добрый..
Таймер работает по времени, а не по участкам кода.
Если стоит в таймере срабатывание 500 мсек, то он будет срабатывать каждые 500 мсек
Это ничего практически если в секунду будет 2 раза проверка клавиш нажатых.
Сам размер кода не важен.
то есть если таймер сработал во время того как функция поиск изображения ожидает самого появления искомого изображения то отслеживание нажатия клавиш и поиска изображения будут работать в параллель?(Отредактировано автором: 19 Июня, 2018 - 07:59:30) |
|
|
Nathgul |
Отправлено: 19 Июня, 2018 - 11:28:51
|
Участник
Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018
Репутация: 0
|
Zireael пишет: Цитата: то есть если таймер сработал во время того как функция поиск изображения ожидает самого появления искомого изображения то отслеживание нажатия клавиш и поиска изображения будут работать в параллель?
Допустим поиск изображения занимает 20мсек, 500/20=25, т. е. 25 раз сработает поиск изображения, потом сработает таймер, потом опять 25 раз поиск изображения и т. д. Если в таймере нет слипов, то это никак не повлияет на поиск картинки.
ты немного не понял... у поиска есть задержка в течении которой он ожидает вероятное появление рисунка... самый первый параметр в окне настроек findimage... если изображения нет то findimage обождет это время и пойдет по ветке "изображение не найдено"/// допустим этот параметр 4000мс=4сек... а что будет делать таймер с частотой запуска 20мс в эти 4 сек? по моим тестам - ничего... он продолжит свою работу как только findimage ее прекратит... или я чет не понимаю тогда...
(Добавление)
CREATE_TIMER(1, 2000)
{
if (findimage_T1(#Image_6_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 75, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB_T1, #x_KIB_T1, #y_KIB_T1)>0) goto m_KIB4_T1;
else goto m_KIB3_T1;
m_KIB4_T1: key_T1(99, 1, 0, 0); goto m_KIB5_T1;
m_KIB3_T1: if (findimage_T1(#Image_26_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 75, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB_T1, #x_KIB_T1, #y_KIB_T1)>0) goto m_KIB4_T1;
else goto m_KIB1_T1;
m_KIB1_T1:
goto exit_KIB_T1;
m_KIB5_T1: disabletimer (1);
exit_KIB_T1:;
}
(для просмотра ссылки Вам необходимо авторизоваться) - схематически
есть вот такой вот таймер... в нем 2 блока поиска индикации с нулевой задержкой... при нахождении рисунка 1 или 2 он нажимает клавишу и самовыключает себя (таймер имею ввиду)... задержку ставил 20 мс и работает он грустно вообще... пришлось увеличивать до 2 сек... есть ли в нем какие то слипы? |
|
|
Kibor |
Отправлено: 19 Июня, 2018 - 14:31:36
|
Эксперт
Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Таймер проверяет свое время в момент когда скрипт переходит на новую строку.
то есть если встроенная (розовая) findimage функция долго ищет внутри себя, то в это время таймер не работает и сработает когда findimage завершит свою работу.
а если ожидание изображения реализовано
CODE:aaa();
function aaa()
{
//проверит время . если надо пеейдет в таймер
loop()
{
//проверит время . если надо пеейдет в таймер
if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1)==1)return;
//проверит время . если надо пеейдет в таймер
sleep(10);
//проверит время . если надо пеейдет в таймер
}
}
то таймер будет выполняться так.
А если в самой findimage долго ищет, то будет ожидать пока не выйдет с findimage |
|
|
|