Wreszcie

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.

Dodaj komentarz