Что нового

Поиск пикселя заданное количество времени

Glazotubik

Новичок
Сообщения
2
Репутация
0
Помогите, пожалуйста, реализовать следующее: есть некая активная область из центра которой радиально движется луч определенного цвета. Период движения луча известен (5,45 с.), но вязать скрипт к нему, кажется, сложно, т.к. требует синхронного запуска. И это, в общем, и не нужно. Нужно следующее: реализация поиска пикселя в заданной области в течение 6 с. ,то есть по времени больше одного периода обращения луча. И если пиксель за это время был найден, то запускаем цикл поиска еще раз. А если не найден, то выдаем сообщение и звук. Есть кусочек кода вот такой:
Код:
PixelSearch(766, 675,628,808,0xF0F4F9) ; координаты области, цвет,
If Not @error Then
Beep(500, 850)
MsgBox(0, "Сообщение", "Включай локатор, другой комплект!", 5) ; Действие
EndIf
Sleep(2000)

WEnd

Сообщение автоматически объединено:

А еще было бы лучше, чтобы КАК ТОЛЬКО находился пиксель, то цикл поиска в 6 секунд запускался заново. Т.е., например, запуск цикла в 6 сек --Пиксель обнаружен на 2й секунде --условие выполнено -- запуск цикла в 6 секунд --...--- условие не выполнено, тогда сообщение и звук. Заранее благодарю.
 
Последнее редактирование:

IMStrelcov

CTPEJIbLLOB
Сообщения
177
Репутация
31
Код:
$iTime = 1000 * 6 ;6 секунд
$hTimer = TimerInit()

While TimerDiff($hTimer) <= $iTime
    $iResult = PixelSearch(766, 675,628,808,0xF0F4F9)
    If Not @error Then $hTimer = TimerInit();пиксель найден, обнуляем таймер
WEnd

Beep(500, 850)
MsgBox(0, "Сообщение", "Включай локатор, другой комплект!", 5) ; Действие
 
Автор
G

Glazotubik

Новичок
Сообщения
2
Репутация
0
Код:
$iTime = 1000 * 6 ;6 секунд
$hTimer = TimerInit()

While TimerDiff($hTimer) <= $iTime
    $iResult = PixelSearch(766, 675,628,808,0xF0F4F9)
    If Not @error Then $hTimer = TimerInit();пиксель найден, обнуляем таймер
WEnd

Beep(500, 850)
MsgBox(0, "Сообщение", "Включай локатор, другой комплект!", 5) ; Действие
Спасибо большое, работает! Люди могут летать спокойно!
 
Верх