Witam, mam problem dotyczący sterowania obiektem w 2d. Piszę moją pierwszą grę i ma to być prosta gra wyścigowa ze sterowaniem jak np w legendarnym gta2. Biblioteka graficzna z jakiej korzystam to SDL. Obecnie mam tak:
wciśnięcie klawisza:
case SDLK_UP:
Vely -= cos(kat)*Vm;
Velx += sin(kat)*Vm;
break;
case SDLK_DOWN:
Vely += cos(kat)*Vm;
Velx -= sin(kat)*Vm;
break;
case SDLK_LEFT: kat +=0.1; break;
case SDLK_RIGHT: kat -=0.1; break;
puszczenie klawisza:
case SDLK_UP:
Velx -= sin(kat)*Vm;
Vely += cos(kat)*Vm;
break;
case SDLK_DOWN:
Velx += sin(kat)*Vm;
Vely -= cos(kat)*Vm;
break;
case SDLK_LEFT: kat -=0.1; break; // to chyba niepotrzebne
case SDLK_RIGHT: kat +=0.1; break; // -||-
Vm to stała prędkość. Póki co chcę to dobrze zrealizować w taki sposób, a dopiero potem dać przyspieszenie, opóźnienie, tarcie.
No i mam takie problem, że samochód nie jedzie mi tak jak logicznie powinien.
Drugim problemem jest obracanie sprite`a, jak to realizować w SDLu? Wiem że nie ma wbudowanej funkcji, ale jest dodatkowa nakładka na SDLa mająca funkcję rotozoom, tyle że jest to mało wydajne dla dynamicznych (:D) gier. Jak uważacie, jak powinienem to zrealizować? Obrócić obrazki co np 15-30 stopni, przeliczyć te wartości na radiany i potem wklejać je na powierzchnię w zależności od zmiennej "kąt"?
Będę wdzięczny za pomoc