Simulación conducción

Simulador de conducción

La forma de simular el movimiento de un coche, es algo que he tenido que investigar un poco, porque imitar el giro de un vehículo de manera creíble, no es tan fácil como girar el sprite simplemente. Lo que tenemos son 4 ruedas, las dos de delante cambian su dirección por medio del volante y las de detrás siempre miran hacia el frente. Al girar, si imaginamos el eje de rotación de las ruedas, todos se cortan en un cierto punto. Y ese punto es el centro de un círculo por el que pasará el vehículo. Mejor verlo en un dibujo:
Nota: en el dibujo no está muy bien pintado, pero evidentemente, las ruedas delanteras no están giradas el mismo ángulo exactamente, o sería imposible que se cruzasen todos los ejes.

coche_grafico

Con este esquema en la cabeza, podemos programar algo aceptable. La línea celeste representa el círculo del que hablaba antes. Por ese círculo pasará el punto medio del eje trasero, es decir, el círulo celeste es la trayectoria del punto p. El centro de esta circunferencia, el punto c, es el punto donde comentaba antes que se cruzan los ejes de todas las ruedas.

Utiliza las teclas Q-W para girar y P-L para acelerar y frenar, o toca los cursores en pantalla.
Ir al simulador de conducción

Esta simulación, funciona bien para un coche que no circule muy rápido, por ejemplo para aparcar o esquivar obstáculos. Pero a medida que se aumenta la velocidad, empiezan a entrar en juego otras cuestiones como que la aceleración no es constante, si no que depende de la respuesta del motor y de la caja de cambios. O por ejemplo, que en las curvas se pierde tracción, e incluso se puede llegar a derrapar. Todo esto no está presente en este ejemplo.