http://nopaste.gamedev.pl/?id=4746 – program, w którym rysujemy ścieżkę ruchu dla Spybot’a – Tracker’a. Zapisuje on wynik w pliku nagłówkowym .nqh, jako dwie tablice zawierające kąty i odległości. Elementy tablic, zgodnie z językiem NQC, nie mogą być inicjowane z poziomu programisty, stąd funkcja initiate().
Obrót zgodny z ruchem wskazówek zegara jest oznaczany jako dodatni, przeciwny jako ujemny. Kąt obrotu nigdy nie może być większy od 180°. Jest to zasługa tego fragmentu:
if (fOrientation > fAngle)
{
if (fOrientation - fAngle <= 180)
fTurnAngle = fOrientation - fAngle ;
else
fTurnAngle = -1 * (360 - fOrientation + fAngle) ;
}
else if (fOrientation < fAngle)
{
if (fAngle - fOrientation <= 180)
fTurnAngle = - (fAngle - fOrientation) ;
else
fTurnAngle = 360 - fAngle + fOrientation ;
}
else fTurnAngle = 0 ;
Drugi program, napisany w NQC jest uruchamiany osobno, po podłączeniu robota do komputera. Dołącza plik nagłówkowy z danymi, jest bardzo prosty w budowie: http://nopaste.gamedev.pl/?id=4747
Problemem jest to, że nie znalazłem funkcji odpowiadającej za zwolnienie silników, przez co robot jest niedokładny. Obrót robota jest mierzony w centysekundach (1/100s = 1cs), a nie w stopniach, czy chociaż radianach. W dodatku system robota nie obsługuje liczb innych niż całkowite. Kolejnym ograniczeniem jest pamięć robota, która może przechować jedynie 15 waypoint’ów.