Что нового

Организация алгоритма на основе PixelSearch.

syavak

Новичок
Сообщения
12
Репутация
1
Задача : оборачиваясь по кругу найти моба подбежать к нему удерживая прицел на нём , моб может медленно передвигатся
0001vh.jpg

попробовал зделать так :
Код:
While 1
	$pos = MouseGetPos()
	MouseMove($pos[0]+1, $pos[1])
	Sleep(100)
	$coord = PixelSearch( 369, 269, 429, 329, 0xFF3300 ) ; зона поиска обведена красным
    If Not @error Then
	 MouseMove($pos[0]+($coord[0]-399), $pos[1]+($coord[1]-299))
   EndIf

Sleep(50)
WEnd
прицел всегда находится в центре экрана
если я двигаю его на 1 пиксель то он передвигается
$pos = MouseGetPos()
MouseMove($pos[0]+1, $pos[1])
но если к примеру на десять то начинает прыгать
подскажите как я могу реализовать задуманое , в чем у меня проблема ?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,602
Репутация
941
Re: Помогите с PixelSearch

Что за игра то хоть? Скрин с мобом покажи, когда курсор на него наведен.
 
Автор
S

syavak

Новичок
Сообщения
12
Репутация
1
Re: Помогите с PixelSearch

00003p.jpg
00002r.jpg

С цветом моба всё нормально если понадобится могу подменить текстуры мобов на свои. Шкалу с жизнями и название тоже могу убрать.
У меня сейчас главная задача зделать чтобы курсор с координат $pos[0] = 400 $pos[1] = 300 передвинулся в 410 301 с шагом в 1 пиксель типа :
MouseMove($pos[0]+1, $pos[1]+1)
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
MouseMove($pos[0]+1, $pos[1])
но делалось это автоматически т.е. розбивалось на шаг в 1 пиксель


Добавлено:
Сообщение автоматически объединено:

Вроде чтото получилось но если ктонить посоветует чтото хорошее буду рад
Код:
While 1
	$pos = MouseGetPos()
	$coord = PixelSearch( 369, 269, 429, 329, 0xFF3300 )
    If Not @error Then
	MouseMoveCoords()
    Else
	MouseMove($pos[0]+1, $pos[1])
	Sleep(100)
    WEnd
Func MouseMoveCoords()
if $pos[0] < $coord[0] Then
	MouseMove($pos[0]+1, $pos[1])
EndIf
if $pos[0] > $coord[0] Then
	MouseMove($pos[0]-1, $pos[1])
EndIf
if $pos[1] < $coord[1] Then
	MouseMove($pos[0], $pos[1]+1)
EndIf
if $pos[1] > $coord[1] Then
	MouseMove($pos[0], $pos[1]-1)
EndIf
EndFunc



Добавлено:
Сообщение автоматически объединено:

Теперь новая задача вычислить крайние левый правый верхний нижний пиксели моба чтобы двигать прицел в центр. Извините если много глупых вопросов задаю просто я ток начал изучать Аутоит.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,602
Репутация
941
Re: Помогите с PixelSearch

Ну если исходить из картинки, полоска хп находится прямо на мобе, ну даже если выше, то зная отступление просто постоянно двигать мышь в середину этого места по средством:
Если на экране полоска хп сдвинулась в какую-то сторону от середины, двигать мышь на +1 -1 вверх вниз или в бок до тех пор пока полоска хп не примет изначальное положение. Если можешь подменить текстуры то вообще поставь белый или какой-нибудь другой круг, без тени и будет тебе счастье, будешь всегда в центр него целиться и все :smile:
 
Верх