Меня как новичка интересует следующее, в играх часто бывает такое, например:
1. Есть пиксель который не меняется, за него можно зацепиться - запоминаем его
2. Что то делаем, кнопку жмем и т.д
3 Проверяем этот пиксель или другой на совпадение с нужным цветом.
Между пунктом 1 и 3 нужно ждать неизвестное время - 1-30сек, как быть в таком случае?
На ум приходит только такае
Думаю бесконечный цикл не лучшее решение, может есть получше?
Также наткнулся на грабли, если нужно искать один пиксель который Не равен определенному значению.
Получается картинка меняется не сразу, а плавно)), if срабатывает на первое значение = пиксель Не равен.. и идет дальше алгоритм.. который естественно бывает не срабатывает, так как окно может еще не догрузится до нужного места.
Большой Sleep ставить тоже не вариант, можно что то пропустить))
По этому выполняется такая проверка
И опять эти бесконечные циклы, хочется более красивого и правильного решения, и что б время на исполнение по минимуму уходило
1. Есть пиксель который не меняется, за него можно зацепиться - запоминаем его
2. Что то делаем, кнопку жмем и т.д
3 Проверяем этот пиксель или другой на совпадение с нужным цветом.
Между пунктом 1 и 3 нужно ждать неизвестное время - 1-30сек, как быть в таком случае?
На ум приходит только такае
Код:
$1Pixel = "тут цвет"
$2Pixel = "тут цвет"
; что то сделали..нажали кнопу и т.д
; нужно ждать не известное время
While 1
If $2Pixel = PixelGetColor(10, 10) Then
ExitLoop
Else
Sleep(100)
ContinueLoop
EndIf
WEnd
Думаю бесконечный цикл не лучшее решение, может есть получше?
Также наткнулся на грабли, если нужно искать один пиксель который Не равен определенному значению.
Получается картинка меняется не сразу, а плавно)), if срабатывает на первое значение = пиксель Не равен.. и идет дальше алгоритм.. который естественно бывает не срабатывает, так как окно может еще не догрузится до нужного места.
Большой Sleep ставить тоже не вариант, можно что то пропустить))
По этому выполняется такая проверка
Код:
While 1
$c = 0 ; счеткик
$Proverka = PixelGetColor(10, 10)
While 1
If $Proverka = PixelGetColor(10, 10) Then ; $Proverka = пикселю тому что сейчас
$c+=1
If $c = 5 Then ;$Proverka = 5 раз = пикселю тому что сейчас
Send('{ESC}') ; что то делаем, например жмем кнопку или выходим
ExitLoop 2
EndIf
Else
ExitLoop
EndIf
WEnd
WEnd
И опять эти бесконечные циклы, хочется более красивого и правильного решения, и что б время на исполнение по минимуму уходило