1

Тема: Поиск последнего пикселя

Подскажите как  выполнить поиск последнего пикселя    вот пример   https://prnt.sc/116jfq2
насколько я понял с документации  PixelGetColor  ищет в координатах  Х, У.  в моем случае нужно
найти начало  коричневой полосы или   конец,   синей чтобы можно было   отследить движение   синей полосы

самое простое найти первую координату коричневой полосы и  отслеживать ее изменение по Х
но   коричневый цвет прозрачный точнее  анимированный и там постоянно меняться оттенок, а вот 
Синий  цвет  не меняется:

Вопрос как отследить  координаты   не   первого синего пикселя, а последнего, что бы можно было
его потом записать в переменную и сравнивать на изменение место положения по Х 
смысл игры   при движении   синей полоски  жать  Одну  клавишу   при  отсутствии движения   другую клавишу

2

Re: Поиск последнего пикселя

Думаю команда 'ImageSearch' сможет помочь в поиске картинки. Затем вычислить позицию не проблема.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: Поиск последнего пикселя

Проблема в том что это не картинка, а полоса которая движется  и нужно  как то узнать координаты  конца полосы  так как они постоянно то меняются, то нет    вот и нужно не первый  синий  пиксель, а последний

4

Re: Поиск последнего пикселя

Всё что мы видим в игре можно заскринить - следовательно всё будет простым изображением, которое можно обрезать, предоставить команде 'ImageSearch', затем уже производить поиск и так далее.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: Поиск последнего пикселя

А как  правильно выполнить поиск     и   сверку   координат 

Идея такая   делаем  скриншот там где  синяя полоса с коричневой  и  получаем  координаты  этой картинки 
потом делаем проверку на изменение этих координат (то есть на проверку сместилась картинка или нет)  если не сдвинулась жать F2.
В противном случае F3.   И так пока  есть синий цвет  как только он пропал  жать  F1 и ждать картинку и проводить поиск на изменения координат      как  можно такое в  код записать))

6

Re: Поиск последнего пикселя

В шапке ведь написано:

но   коричневый цвет прозрачный точнее  анимированный и там постоянно меняться оттенок

Значит его искать наверно не стоит.
Увы слишком мало данных для получения полноты картины.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7

Re: Поиск последнего пикселя

Изучаю свою задачу  и прошу  помощи разобраться в  вопросе   

помогите понять как  это работает вот как  я это вижу
https://prnt.sc/116jfq2

вот на таком участке  есть  синяя полоса  она  должна  двигаться  влево пока не пропадет

чтобы  ее  сдвинуть нужно    когда она не двигается   нажать  F2 
когда начинает    двигаться   нажать  F3     двигаться   по разному  рандомно

вот  к чему я прешёл нужно       взять координаты  последней точки  по    Х   и записать в переменную например Cord1

потом взять  координаты   повторно  так   по моему  мнению можно   сравнить 2  координаты  Cord1 = Cord2

и уже  если  они  равны  нажать    F2   а  если не равны то нажать F3    опять  взять координаты и сравнить их с теми что были в прошлой проверке и так  по кругу  пока  есть  синий  цвет   если  его нет  ждать пока он не появиться



пока   понял как взять   координаты  последнего  пикселя

PixelSearch, Px, Py, 604, 522, 376, 522, 0x986C2E, 10, Fast
cordPX := Px 

Так я беру  координаты по X по        Y  не меняются  только по X
и записываю в переменную -   cordTX

дальше не пойму  как  взять  координаты для   проверки на  движение полосы

PixelSearch, Tx, Py, 604, 522, 376, 522, 0x986C2E, 10, Fast
cordTX := Tx 

если  так взять  он  проверит, нажмет   Что-то   и теперь он должен взять координаты
для следящей проверки   

F1::

Loop
{
	Tooltip Начало первой части
	; часть 1
	tooltip % "Цикл №" a_index
	PixelSearch, Px, Py, 604, 522, 376, 522, 0x986C2E, 10, Fast 
	cordPX := Px

	sleep, 50
	if (cordPX = cordTX)
	{
	SendInput, {F3}
	sleep, 500
	PixelSearch, Tx, Py, 604, 522, 376, 522, 0x986C2E, 10, Fast 
	cordTX := Tx
	}
    else
	{
	SendInput, {F2}
	sleep, 500
	PixelSearch, Tx, Py, 604, 522, 376, 522, 0x986C2E, 10, Fast 
	cordTX := Tx
	sleep, 50
	}
}
return

помогите поправить  код чтоб  он выполнял проверку на  смещение  синей полосы и выполнял действие  пока есть синий пиксель
если он  пропадает ждать пока он появиться и так бесконечно