1 (изменено: Foxtrot, 2019-01-09 00:06:19)

Тема: Проблема с поиском изображения в игре

Доброго времени суток.

Есть игра под Android, которую я запускаю через виртуальную машину NOX. Хочу написать скрипт, который будет сканировать карту игры в поисках определенного предмета.

Вот код тестового скрипта, который я уже в дальнейшем интегрирую в цикл по поиску:

F12::
{
		Reload
		Return
}

F3::
{

FoundX:=0
FoundY:=0

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, F:\test.bmp
if ErrorLevel = 2
    MsgBox Could not conduct the search.
else if ErrorLevel = 1
    MsgBox Item could not be found on the screen.
else
    MsgBox The item was found at %FoundX%x%FoundY%
}

Что я сделал - нашел на карте предмет, сделал скриншот окна с данным предметом, сохранил в Paint как 24-х битный рисунок bmp. Далее через ACDSee обрезал его до нужного предмета, точнее его центра, чтобы не мешало его окружение. Сохранил полученное изображение как test.bmp. Запускаю скрипт т в окне проводника по миниатюре изображения все находится сразу, а вот в окне самого эмулятора в упор предмет не находит. В чем может быть загвоздка?

Второй момент, как заставить скрипт искать только в рамках активного в данный момент окна?

2

Re: Проблема с поиском изображения в игре

Я так пониманию штатные функции игнорируют и не могут "залезть" в окно виртуальной машины.

Как альтернатива нашел возможность поиска изображения альтернативнымспособом. Правда не разобрался, как отсюда задействовать просто поиск изображения, может кто подскажет?

3

Re: Проблема с поиском изображения в игре

Если принтскрин работает, то imagesearch тоже должен.

4 (изменено: Foxtrot, 2019-01-10 13:47:56)

Re: Проблема с поиском изображения в игре

Malcev пишет:

Если принтскрин работает, то imagesearch тоже должен.

Принтскрин работает, но скрипт изображение в упор не видит. Пробовал конвертировать картинку в PNG, бесполезно.
Как и допуск отклонения не помог:

ImageSearch, FoundX, FoundY, 0, 0, 2560, 1440, *45 F:\test1.png

Попробовал через PixelGetColor

F3::
PixelSearch, Px, Py, 0, 0, 2560, 1440, 0x090ED8, 3, Fast
if ErrorLevel
    MsgBox, That color was not found in the specified region
else
    MsgBox, A color within 3 shades of variation was found at X%Px% Y%Py% 

Тоже самое, не находит нужного цвета Pixel. Мистика.

5

Re: Проблема с поиском изображения в игре

https://autohotkey.com/docs/commands/CoordMode.htm

6

Re: Проблема с поиском изображения в игре

Malcev

F3::
CoordMode, ToolTip, Screen
PixelSearch, Px, Py, 0, 0, 2560, 1440, 0x090ED8, 3, Fast
if ErrorLevel
    MsgBox, That color was not found in the specified region.
else
    MsgBox, A color within 3 shades of variation was found at X%Px% Y%Py%.

Добавил так, вообще перестало искать, даже просто в виде превью в проводнике.

7

Re: Проблема с поиском изображения в игре

Перед тем как использовать команды стоит о них почитать в справке.

8 (изменено: Foxtrot, 2019-01-10 18:27:30)

Re: Проблема с поиском изображения в игре

Malcev
Извиняюсь, поторопился.

F3::
CoordMode, Pixel, Screen
PixelSearch, Px, Py, 0, 0, 2560, 1440, 0x090ED8, 3, Fast
if ErrorLevel
    MsgBox, That color was not found in the specified region.
else
    MsgBox, A color within 3 shades of variation was found at X%Px% Y%Py%.

Пробовал и так и без Screen. Без вариантов, не находит в упор. Спецом еще раз считал другой цвет пикселя, в проводнике и графическом редакторе видит, в окне эмулятора нет. Пробовал допустимую погрешность повысить до 5, но тогда много ошибочных.

Update, при погрешности 4 и в полноэкранном режиме вроде находит точно. Буду тестировать.

9

Re: Проблема с поиском изображения в игре

Попробуйте получить пиксель через pixelget и потом его поискать через pixelsearch.

10

Re: Проблема с поиском изображения в игре

Да, поиск пикселей в полноэкранном режиме работает, пока ориентируюсь на него, хотя бывают ложные срабатывания иногда.