А можно ли как нибуть сделать ожидание появления картинки, как вот есть для появления пикселя?
GETSCREEN
WHILE(PXL (100, 100) ! 255)
WAITMS (100)
GETSCREEN
END_CYC
А то варианты типа:
WHILE($var = 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
print("Найден в координатах X=", $_return1, ", Y=", $_return2)
LCLICK($_return1, $_return2)
$var = 1
else
waitms(50)
END_IF
END_CYC
надоели тем, что очень много переменных и путаешься если в комментариях не пишешь сразу для чего данная переменная
nachalo:
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
print("Найден в координатах X=", $_return1, ", Y=", $_return2)
LCLICK($_return1, $_return2)
goto(dalshe)
else
waitms(50)
goto(nachalo)
END_IF
dalshe:
мои любимые goto )))
ps. сори за отступы, редактировал на бегу)
И в чём сокральный смысл такой экономии?
Сэкономил переменную "$var" но ввёл две метки "dalshe:" и "nachalo:", поменял шило на мыло попутно нафиг разломав стройный и понятный порядок выполнения. При этом увеличив код на 1 строку.
Понятно из вопроса, что человек жаждет использовать IF_PICTURE_IN прямо в условии цикла WHILE. К сожалению так нельзя. Да это и не важно, размер кода увеличивается незначительно. Я переменных вообще не жалею.
Нужно просто использовать не безсмысленные var, а что нибудь понятнее.
"Безликие" переменные типа $i далее $j можно иногда использовать для организации конечных циклов, т.е. не содержащих вложенных циклов/подпрограмм. Максимум одно вложение. Внешнее $i внутреннее $j
Если вложений больше, для внешних (можно для всех, кроме маленьких незначащих) использовать осмысленные переменные для циклов.
(ох и написал... кроме меня это хоть кто нибудь понял?
)
Со временем вырабатывается привычка делать, так то и так то. Путаться не будешь точно.
P. S. dmutruk используй для оформления кода не кнопку "Код", а выпадающий список "Код" - "Clickermann". Если конечно пишешь не с телефона (у меня с телефона пользоваться списком нельзя).