Biorąc pod uwagę dwuwymiarową przestrzeń i 1 przyjazny statek kosmiczny, który stoi w miejscu, jeden przeciwnik porusza się NIE bezpośrednio na przyjazny statek o znanej rzeczywistej pozycji, prędkości i kierunku.
Przyjazny statek chce dostać się na zasięg ostrzału, aby walczyć z wrogiem.
Właściwie ustawiam tylko wektor bezpośredni na rzeczywistą pozycję poruszającego się statku i przeliczam go co każdą klatkę, co daje rodzaj „okrągłej” ścieżki lotu.
Chcę ustalić bezpośrednią i prostą ścieżkę do pozycji, którą przeciwnik (prawdopodobnie) będzie miał po osiągnięciu odległości strzelania, zakładając, że do tego czasu nie zmieni kursu.
Jako pierwsza i „prosta” implementacja wystarczyłoby założyć, że przyjaciel może przyspieszyć od 0 do maksimum w krótkim czasie.
Preferowana implementacja to taka, która bierze pod uwagę możliwości przyspieszania przyjaciela i wie, kiedy przechwycenie jest niemożliwe ze względu na prędkość. Powinien działać na każdą prędkość początkową, nie tylko z bezruchu. Plus byłby, gdyby nawet rozważał hamowanie (walka z prędkością światła jest bardzo nieefektywna energetycznie w danym wszechświecie)
źródło
Sugeruję przyjrzeć się zachowaniom kierowania. Szczególnie pogoń . Kod źródłowy można znaleźć w implementacji OpenSteer lub poszukać książki takiej jak „ Programowanie sztucznej inteligencji gry przez przykład ” (ISBN 13: 978-1556220784)
źródło