Nie konkretne opcody, tylko zwykła matematyka.
Wszystko sprowadza się do obliczenia odpowiedniego obrotu strzałki.
Przypuśćmy, że chcesz zrobić licznik w kształcie koła. Pełny obrót koła wynosi 360 stopni. Załóżmy, że:
- Minimalna wartość licznika - 0 km/h
- Maksymalna wartość licznika - 280 km/h
- stosunek prędkości w jednostkach z GTA SA do km/h wynosi 0,5
W takim razie 1 km/h będzie w przybliżeniu odpowiadał 1.29 stopnia.
360/280 ~ 1,29
Teraz musisz odczytać prędkość samochodu:
Kod:
02E3: 188@ = car 59@ speed
Nie jestem pewien w jakich jednostkach jest podawana prędkość w GTA SA, ale przypuszczam, że są to wewnętrznie przyjęte wartości. Załóżmy, że stosunek prędkości w jednostkach GTA SA do km/h wynosi
0,5.
Prędkość w kilometrach:
Kod:
188@ *= 0.5
Nie chcemy, żeby obrót strzałki wynosił więcej, niż 360 stopni, więc trzeba zrobić ograniczenie:
Kod:
if
188@ > 280.0
then
188@ = 280.0
end
Rotacja strzałki na prędkościomierzu:
Kod:
10@ = 188@
10@ *= 1.29
I wyświetlasz strzałkę:
Kod:
074B: draw_texture 20 position 600.0 400.0 scale 1.0 1.0 angle 10@ color_RGBA 255 2555 255 255
Oczywiście pominąłem takie rzeczy, jak wyświetlanie pozostałych tekstur, ładowanie ich itd.
Nie wiem, czy tak to robili autorzy istniejących prędkościomierzy, ale ja bym to zrobił w ten sposób.