Тема: AHK: Совпавдение цвета в 2 и более областей
Как написать скрипт - если во всех 3 областях на экране одинаковый цвет - то происходил бы звуковой сигнал.
Например:
Во всех 3 областях красный цвет - происходит воспроизведение звука.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как написать скрипт - если во всех 3 областях на экране одинаковый цвет - то происходил бы звуковой сигнал.
Например:
Во всех 3 областях красный цвет - происходит воспроизведение звука.
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)
________{
________Включить мелодию
________}
____}
Я бы наоборот делал три последовательных поиска которые зависят от результатов предыдущего. Избавляет от необходимости флаги делать. Или я не прав?
belyankin12, да, только если картинка не меняется быстро.
trader77666, на том сайте можно самостоятельно объединять инды с открытым кодом в один. А оттуда уже рукой подать до переделки в стратегию, тест которой покажет весь тлен и бренность подобных подходов.
ypppu, а вот оно в чем дело, тогда да. Три таймера выглядит более универсальным вариантом.
Картинка меняется не чаще раза в минуту, а если бы она менялась десятки раз в секунду, лучше было бы делать один раз снимок, в котором потом уже искать пиксели.
Да, только искать на скриншоте придётся уже не командой PixelGetColor / PixelSearch, а как-то иначе. Хотя, если вывести скриншот поверх всего экрана, то дальше всё просто.
Да, только искать на скриншоте придётся уже не командой PixelGetColor / PixelSearch, а как-то иначе
Как иначе на форуме уже обсуждали.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться