Что нового

Цикл нажатия клавиш до появления определённого цвета

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
http://autoit-script.ru/autoit3_docs/functions/PixelChecksum.htm
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
Эт я прочитал уже.=)
Но не пойму, как она находит данные пикселы.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Данные конкретные никак.
Она просчитывает контрольную сумму всей области.
И если хоть какой-то пиксель в этой области поменялся, то и контрольная сумма всей области поменялась.
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
Во во.
Тобишь будет останавливать скрипт при каждом изменении цвета?
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
ааа, ну тогда только искать конкретные пиксели.
Бери пачку скриншотов и ищи такие пиксели, которые только в ? ? ? ? есть. :scratch:
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
Вот именно так и надо делать, причем надо задавать 4 проверки, чтобы сначало 4 места проверялось, а после производился цикл, если отсутствует во всех 4 точках данный цвет.
Как бы это реализовать только...
В пилоте данная функция легко делается.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Ну так всё ж сделано уже!
Нужно только вписать координаты контрольных точек.
Код:
HotKeySet("{F1}", "knopka1")

$trigger = 0
$color=0x31F731

Func knopka1()              ; старт/стоп по кнопке 1
    $trigger = Not $trigger
EndFunc

Func proverka()                
    Pixelsearch(150,100,1250,950, $color)       ; <=== здесь
    if not @error then $trigger = 0
           
    Pixelsearch(150,100,1250,950, $color)       ; <=== здесь
    if not @error then $trigger = 0
               
    Pixelsearch(150,100,1250,950, $color)       ; <=== и здесь
    if not @error then $trigger = 0
EndFunc

While 1                         ; основной цикл
    proverka()
    If $trigger Then Send("{F2}")
    Sleep(1000)
WEnd
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
Всё работает, но не останавливает на этих вопросах...
Координаты брал новые и брал старые пилотовские.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Добавь 10 в конце
Код:
Pixelsearch(150,100,1250,950, $color, 10)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Стоп. Не 10, а 25 попробуй поставить.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А ну запускай
Код:
HotKeySet("{F1}", "knopka1")

Global $trigger = 0

Func knopka1()				; старт/стоп по кнопке 1
	$trigger = Not $trigger
EndFunc

Func proverka()				

    $color = PixelGetColor(650,109)
    FileWriteLine($file, "цвет " & _ColorGetRed($color) & "/" & _ColorGetGreen($color) & "/" & _ColorGetBlue($color))
 
EndFunc

$file = FileOpen("log.txt", 1)

While 1							; основной цикл
	proverka()
    If $trigger Then Send("{F2}")
	Sleep(10000)
WEnd

FileClose($file)
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
FileWriteLine($file, "цвет " & _ColorGetRed($color) & "/" & _ColorGetGreen($color) & "/" & _ColorGetBlue($color))
Ругается.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Та это ж предупреждение.
Ну вот так переставь
Код:
HotKeySet("{F1}", "knopka1")

Global $trigger = 0

Func knopka1()              ; старт/стоп по кнопке 1
    $trigger = Not $trigger
EndFunc

$file = FileOpen("log.txt", 1)

While 1                         ; основной цикл
    proverka()
    If $trigger Then Send("{F2}")
    Sleep(10000)
WEnd

FileClose($file)

Func proverka()            

    $color = PixelGetColor(650,109)
    FileWriteLine($file, "цвет " & _ColorGetRed($color) & "/" & _ColorGetGreen($color) & "/" & _ColorGetBlue($color))
 
EndFunc
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
Всё равно ругается на эту же строчку...
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
точно.
Вверху должно быть
Код:
#include <Color.au3>
#Include <Misc.au3>
 
Автор
L

Lazy

Новичок
Сообщения
40
Репутация
0
Опять не пашет...
Проскакивает умение.
 
Верх