Автор Тема: Грубая проверка цвета пикселя  (Прочитано 216 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zmiter25 [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.3.14.2

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

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

Примечания: пробовал указывать 2 цвета, все ровно не идеально.
Код: AutoIt [Выделить]
#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
 

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

Русское сообщество AutoIt

Грубая проверка цвета пикселя
« Отправлен: Ноябрь 08, 2017, 16:33:59 »

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Грубая проверка цвета пикселя
« Ответ #1, Отправлен: Ноябрь 08, 2017, 16:39:43 »
Код: AutoIt [Выделить]
While 1
$Variable = PixelSearch(170,960,240,999,0xFEABAD, 100) ; 100 - "погрешность" в цвете (от 0 до 255)
 If IsArray($Variable) = True Then
  Send ("q")
 EndIf
Sleep(20)
Wend

Is it future or is it past?

Оффлайн zmiter25 [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Грубая проверка цвета пикселя
« Ответ #2, Отправлен: Ноябрь 08, 2017, 18:51:35 »
"погрешность" в цвете (от 0 до 255)
спасибо! помогло! только не понятно что именно обозначает значение (от 0 до 255). на сколько я понял при 255 будет реагировать вообще на любой цвет?

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Грубая проверка цвета пикселя
« Ответ #3, Отправлен: Ноябрь 09, 2017, 10:12:56 »
Цитировать
при 255 будет реагировать вообще на любой цвет?
Да, 0 - точное совпадение, 255 - все цвета. Смотрите справку:
https://autoit-script.ru/autoit3_docs/functions/PixelSearch.htm

Русское сообщество AutoIt

Re: Грубая проверка цвета пикселя
« Ответ #3 Отправлен: Ноябрь 09, 2017, 10:12:56 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
20 Ответов
17408 Просмотров
Последний ответ Октябрь 13, 2015, 21:54:07
от Yashied
11 Ответов
5753 Просмотров
Последний ответ Октябрь 15, 2012, 02:13:33
от Pat4005
0 Ответов
1443 Просмотров
Последний ответ Сентябрь 28, 2013, 13:21:02
от jackieneon
4 Ответов
1999 Просмотров
Последний ответ Декабрь 02, 2013, 23:36:11
от InnI
6 Ответов
2073 Просмотров
Последний ответ Февраль 12, 2014, 09:06:47
от madmasles
0 Ответов
1168 Просмотров
Последний ответ Май 03, 2014, 11:57:49
от madmasles
0 Ответов
694 Просмотров
Последний ответ Ноябрь 16, 2014, 17:37:36
от madmasles
9 Ответов
4754 Просмотров
Последний ответ Апрель 13, 2015, 07:46:21
от bFF
2 Ответов
1400 Просмотров
Последний ответ Август 02, 2015, 14:55:46
от knocker
4 Ответов
958 Просмотров
Последний ответ Апрель 22, 2016, 00:56:50
от Alofa