Тема: Алгоритм преследования цели
Задача:
Преследовать красную точку управляя клавишами WASD таким образом, чтобы точка была всегда в перекрестии.
Точка постоянно двигается.
Для преследования статической точки использовал следующий простой алгоритм:
XI=704
YI=944
Send {W Down}
sleep 100
Send {Delete Down}
MoveY:
PixelSearch, X, Y, Xi-50, Yi-1, Xi+50, Yi+1, 0xFF0000, 0, Fast RGB
if ErrorLevel
goto, MoveY
else
{
Send {W UP}
sleep 200
Send {Delete}
sleep 2000
SoundBeep, 750
}
XI=787
YI=856
Send {A Down}
sleep 100
Send {Delete Down}
MoveX:
PixelSearch, X, Y, Xi-1, Yi-50, Xi+1, Yi+50, 0xFF0000, 0, Fast RGB
if ErrorLevel
goto, MoveX
else
{
Send {A UP}
sleep 200
Send {Delete UP}
sleep 2000
SoundBeep, 750
XI=0
YI=0
}
, где xi и yi смещенные центры перекрестия прицела. Алгоритм работает.
Вопрос, каким образом можно заставить перекрестие с центром в хi,yi преследовать двигающуюся точку?
Другими словами, у вас есть мишень, есть программное управление этой мишенью. Пуля "дура" летит в молоко к примеру по неправильной спиральной траектории, вам необходимо всегда двигать мишень таким образом чтобы пуля всегда была в 10: