Pregunta

Tengo una nave espacial con dos propulsores en su base, uno a la izquierda y otro a la derecha.

Cuando el propulsor derecho está sobre él, debe empujar la nave espacial en una curva parabólica hacia la izquierda a medida que se acelera. y el reverso para el propulsor izquierdo.

¿Cómo implemento esto?

Encontré algo llamado "Radian Impulse" en Box2d, ¿haría esto el trabajo?

También me gustaría la física el reverso del empuje derecho durante un poco (un poco como uno de esos autos RC baratos con solo el botón), pero solo si el otro propulsor se usó dentro de un cierto tiempo anterior.

Un ejemplo de trabajo (o algo que apunta en la dirección correcta) con cualquier biblioteca sería suficiente.

¿Fue útil?

Solución

Cuando tienes cohetes fuera del centro y solo un dispara, estás dando tu barco esfuerzo de torsión. Para simular esto, necesitaría dividir el empuje de su cohete en dos componentes. Primero empuja su barco hacia adelante (en la dirección en la que está mirando), el segundo aumenta su tasa de rotación. Ejemplo:

pos_x,pos_y - position
vel_x,vel_y - velocity
angle - angle where ship is facing in deg
angle_vel - speed of rotation in deg/s
thrust - how much to add to speed
torque - how much to add to angle
thruster_left, thruster_right - boolean, true if left or right truster is firing

function love.update(dt)
    if thruster_left then
        angle_vel=angle_vel+dt*torque
    end
    if thruster_right then
        angle_vel=angle_vel-dt*torque
    end
    angle=angle+angle_vel
    vel_x=vel_x+thrust*math.sin(math.rad(angle))*dt
    vel_y=vel_y-thrust*math.cos(math.rad(angle))*dt
    pos_x=pos_x+vel_x*dt
    pos_y=pos_y+vel_y*dt
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top