Usa esto:
Las llamadas a la función las pones como respuestas al teclado
Los valores 5 (y -5) y 17 son resultado de a*(b+1)=90 -------> 5*(17+1)=90
puedes poner en su lugar otros como 6 ( y -6) y 14 -------> 6*(14+1)=90
o-------------------------------------------------10 ( y -10) y 8 ---------->10*(8+1)=90
y será mas o menos brusco el movimiento.
Eso gira 90 grados evidentemente. si quieres giros hasta donde sea
simplemente retira el if de limitación que manda el return.
Código :
girar(coche, 5, 0); //giro a la derecha
girar(coche, -5, 0); //giro a la izquierda
function girar(mc, a, cont){
clearInterval(ID);
mc._rotation += a;
if (cont==17){
return
}
cont++;
ID=setInterval(this, "girar", 4, mc, a, cont);
// cambiar el valor 4 si es muy rápido por otro mayor
}