Трафарет - это массив данных, определяемый Вашей переменной. Он ничем не отличается от обычных массивов lua, Единственное отличие, что это тип СИ данных и индексация их начинается с нуля, а не с единицы (но Вам это вообще должно быть по-барабану). Например, Вы объявляете переменную которая создаст трафарет изображения кнопки из шаблона bmp файла:
local button=CreateFindArray({{path..[[!BUT.bmp]] ....}
У меня много версий этой функции, поэтому я опустил параметры. Она будет доступна везде, как обычная переменная, пока вы её не переопределите. Её точно так же может очистить сборщик мусора, если она больше нигде не будет использоваться. "Весит" массив button ровно столько сколько требуется для хранения данных об искомых пикселях картинки. ДА, для её создания будет использоваться буфер той битовой маски, которую Вы укажете или по умолчанию №1, но этот буфер можно использовать для инициализации ВСЕХ картинок, переведённых в формат для поиска.
Для поиска кнопки просто вызывается финд FindImage(......, button, ....) кнопка будет искаться там где надо, либо на экране, либо в памяти, по той битовой маске, по которой Вам требуется. Примерно так. Я конечно переделал тот пример модуля, который выкладывал, но принцип остался тот же и почти с теми же характеристиками скорости. НО, там нет обработки ошибок. Делал для себя, так что повнимательней.
Да. Бинарники - это ускорение загрузки, когда картинок тысячи - загрузка - мгновенно, а если лопатить в цикле функции CreateFindArray - это может занять несколько секунд (у меня около 5 сек.)
|