Título: pseudo codigo - motor fisico Publicado por: EvilGoblin en 19 Agosto 2010, 17:18 pm Estoy "Programando" un juego, y mi intencion es desplazar un auto con un motor fisico. ya hice los graficos y los tengo cargados en pantalla.
Estoy utilizando SDL. Logre la aceleracion "deseada" para un movimiento en linea recta. me muevo por pixeles (usando los direccionales del teclado) x |¯¯¯¯¯¯¯¯¯¯¯¯¯ | _ | | | <- auto | | | | ¯ | Y | x,y. son las coordenadas que utilizo para distinguir sobre que pixel se comienza a dibujar el auto. el auto empieza a dibujarse sobre la esquina izquierda, superior. mi desplazamiento lo hago progresivo 1,2,3,5,7,9,11,12.......(12 pixeles cada 100 ms) frenar ... freno de -2 pixeles cada 100 ms ... ahora el problema me radica a la hora de doblar. Yo quiero lograr el efecto asi: utilizo una variable llamada angulo iniciada en 45 Al estar detenido y presionar izquierda este va disminuyendo hasta 0.. al presionar derecha va aumentando hasta 90.. que al acelerar... se calcule la direccion en la que esta y se rote el vehiculo y se desplaze a la posicion . (creo que tengo que usar alguna funcion de MRUV) al estar desplazandose y presionar IZQ o DERE, y aumentar o disminuir angulo. se recalcule el trayecto... Para esto lo logro con switch(keys) { case(LEFT): auto01.doblar(LEFT); case(RIGHT): auto01.doblar(RIGHT); case(UP) auto01.acelerar(); case(DOWN) auto01.frenar(); } clase CSprite(auto01) Código: class CSprite { ...aun asi mi fisica es mala xD.. el auto queda girando sin ser acelerado.. y se va DemaSiado para los costados. .......... Perdon por la extensa explicacion.. pero era para guiar un poco en lo que estoy parado.. Me gustaria que me guiaran con pseudo codigo la fisica de un auto en 2D visto desde arriba... como lograria el efecto de acelerado, frendo, doblado. Muchas Gracias! Título: Re: pseudo codigo - motor fisico Publicado por: [D4N93R] en 19 Agosto 2010, 20:36 pm Hay mucho que tomar en cuenta en juegos de autos, desde la fricción de las ruedas hasta la centrifuga en el giro, pero vamos que primero sencillo y luego le vas agregando variables.
Con respecto al giro, porque no lo dejas en 0 y luego cambias a positivo o negativo el ángulo ?? pero bueno, no importa xD Podrías publicar el código de aceleración y el de los giros? Saludos! |