Что нового

Грубая проверка цвета пикселя

zmiter25

Новичок
Сообщения
5
Репутация
0
Версия AutoIt: 3.3.14.2

Описание: Здравствуйте! можно ли как то в PixelSearch указать не определенный цвет, а с погрешностью или частично известный (0xFE****)? то есть: в игре есть полоса здоровья, отображаться либо синим либо красным цветом. проблема заключается в том что цвет не постоянный, он мерцает, переливается. и при указании конкретного цвета работает не корректно. немного по проверяв цвета пришел к выводу: красны в основном начинаются с 0xFE а синие с 0x3 или 0x4 (красные 0xFEAAAC 0xFEAFB6 0xFE969B синие 0x42E5F6 0x49E5F5 0x36E7FE) и если бы как то указать диапазон от 0xFE0000 до 0xFEFFFF то возможно, он бы начал работать нормально. да я понимаю что в этом диапазоне может быть не только красный, но поскольку там всего 2 цвета мне это не сильно важно. если что можно указать и поконкретнее 0xFE8000 - 0xFEEEEE.
сейчас скрипт выглядит так
Код:
#include <Misc.au3>

While 1
$Variable = PixelSearch(170,960,240,999,0xFEABAD);
 If IsArray($Variable) = True Then
  Send ("q")
 EndIf
Wend

Примечания: пробовал указывать 2 цвета, все ровно не идеально.
Код:
#include <Misc.au3>

While 1
_f1()
_f2()
Wend


Func _f1()
 $Variable = PixelSearch(170,960,240,999,0xFEA2A2);
 If IsArray($Variable) = True Then
  Send ("q")
 EndIf
EndFunc

Func _f2()
 $Variable = PixelSearch(170,960,240,999,0xFEBABA);
 If IsArray($Variable) = True Then
  Send ("q")
 EndIf
EndFunc

буду признателен за помощь.
 

gunter123

Продвинутый
Сообщения
159
Репутация
69
Код:
While 1
$Variable = PixelSearch(170,960,240,999,0xFEABAD, 100) ; 100 - "погрешность" в цвете (от 0 до 255)
 If IsArray($Variable) = True Then
  Send ("q")
 EndIf
Sleep(20)
Wend
 
Автор
Z

zmiter25

Новичок
Сообщения
5
Репутация
0
gunter123 сказал(а):
"погрешность" в цвете (от 0 до 255)
спасибо! помогло! только не понятно что именно обозначает значение (от 0 до 255). на сколько я понял при 255 будет реагировать вообще на любой цвет?
 
Верх