Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: fisher on May 05, 2017, 03:59:10 PM
-
Доброго времени суток.
Помогите пожалуйста решить задачу.
Flash игра (Forge Of Empires).
Осуществляю поиск изображений командой SCANPICTURE с коррекцией в 64 цвета.
В целевом изображении закрашен фон, необходимый цвет указан в bgcolor.
Точность поиска CURRENCY подобрана опытным путем в 60%. Вероятно изображения в игре отличаются друг от друга, в зависимости от фона (прозрачные и полупрозрачные пиксели).
В связи с достаточно большим допуском, в массив попадают значения отличные в один пиксель по X или Y.
15:26:17 Найдено X = 308 Y = 785
15:26:20 Найдено X = 307 Y = 785
Как отфильтровать ближайшие значения в массиве? Либо как повысить точность поиска?
-
В шаблонах есть код для SCANPXL там я как раз сделал отсев ближайщих значений. Этот код можно применить и для SCANPICTURE
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
$ARR_NUM = 0
$SHIFT_X = 10 // смещение (кол-во игнор пикселов после найденного)
$SHIFT_Y = 10
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF(($X > $X2) | ($Y > $Y2))
$X2 = $X + $SHIFT_X
$Y2 = $Y + $SHIFT_Y
LCLICK($X, $Y) // Клик
WAITMS(100)
END_IF
END_CYC
UNDEFINE($ARR_SCAN)
-
Премного благодарен.