1

Тема: AHK: Совпавдение цвета в 2 и более областей

Как написать скрипт - если во всех  3 областях на экране одинаковый цвет - то происходил бы звуковой сигнал.
Например:
Во всех 3 областях красный цвет - происходит воспроизведение звука.

2 (изменено: romzes96, 2019-04-19 17:32:46)

Re: AHK: Совпавдение цвета в 2 и более областей

trader77666 Я не профессионал, но можно по следующей схеме (наверно):
P.S. Псевдокод будет нарастать по мере его написания.

Создаем 3 переменный они будут выступать в качестве флагов.
Пример:
Флаг1 = 0
Флаг2 = 0
Флаг3 = 0

Затем создаем цикл и в нем запускаем PixelSearch для каждой зоны поиска свои координаты.
Если PixelSearch нашел нужный Вам пиксель то пишем в переменную единичку. если цвет не найден то возвращаем нолик.
И делаем 3 последовательных поиска, которые не зависят друг от друга.
Пример:

+ открыть спойлер

Флаг1 = 0
Флаг2 = 0
Флаг3 = 0

Цикл:
____{
____PixelSearch, pixX, pixY, x1, y1, x2, y2, цвет, вариации цвета ,Fast RGB
____if !ErrorLevel
________{
________Флаг1 = 1
________}
________else
________{
________Флаг1 = 0
________}
____PixelSearch, pixX, pixY, x1, y1, x2, y2, цвет, вариации цвета ,Fast RGB
____if !ErrorLevel
________{
________Флаг2 = 1
________}
________else
________{
________Флаг2 = 0
________}
____PixelSearch, pixX, pixY, x1, y1, x2, y2, цвет, вариации цвета ,Fast RGB
____if !ErrorLevel
________{
________Флаг3 = 1
________}
________else
________{
________Флаг3 = 0
________}
____}

После чего сравниваем три флага между собой и единичкой.
Если все три флага равны единицы, то включаем мелодию.
Пример он же итог:

+ открыть спойлер

Флаг1 = 0
Флаг2 = 0
Флаг3 = 0

Цикл:
____{
____PixelSearch, pixX, pixY, x1, y1, x2, y2, цвет, вариации цвета ,Fast RGB
____if !ErrorLevel
________{
________Флаг1 = 1
________}
________else
________{
________Флаг1 = 0
________}
____PixelSearch, pixX, pixY, x1, y1, x2, y2, цвет, вариации цвета ,Fast RGB
____if !ErrorLevel
________{
________Флаг2 = 1
________}
________else
________{
________Флаг2 = 0
________}
____PixelSearch, pixX, pixY, x1, y1, x2, y2, цвет, вариации цвета ,Fast RGB
____if !ErrorLevel
________{
________Флаг3 = 1
________}
________else
________{
________Флаг3 = 0
________}
____Если (Флаг1 = Флаг2 = Флаг3 = 1)
________{
________Включить мелодию
________}
____}

3

Re: AHK: Совпавдение цвета в 2 и более областей

Я бы наоборот делал три последовательных поиска которые зависят от результатов предыдущего. Избавляет от необходимости флаги делать. Или я не прав?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

4

Re: AHK: Совпавдение цвета в 2 и более областей

belyankin12, да, только если картинка не меняется быстро.

5

Re: AHK: Совпавдение цвета в 2 и более областей

trader77666, на том сайте можно самостоятельно объединять инды с открытым кодом в один. А оттуда уже рукой подать до переделки в стратегию, тест которой покажет весь тлен и бренность подобных подходов.

6

Re: AHK: Совпавдение цвета в 2 и более областей

ypppu, а вот оно в чем дело, тогда да. Три таймера выглядит более универсальным вариантом.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7 (изменено: stealzy, 2019-04-19 22:33:18)

Re: AHK: Совпавдение цвета в 2 и более областей

Картинка меняется не чаще раза в минуту, а если бы она менялась десятки раз в секунду, лучше было бы делать один раз снимок, в котором потом уже искать пиксели.

8

Re: AHK: Совпавдение цвета в 2 и более областей

Да, только искать на скриншоте придётся уже не командой PixelGetColor / PixelSearch, а как-то иначе. Хотя, если вывести скриншот поверх всего экрана, то дальше всё просто.

9

Re: AHK: Совпавдение цвета в 2 и более областей

ypppu пишет:

Да, только искать на скриншоте придётся уже не командой PixelGetColor / PixelSearch, а как-то иначе

Как иначе на форуме уже обсуждали.