Domanda

Ho un'astronave con due propulsori sulla sua base, uno a sinistra e uno a destra.

Quando il propulsore destro è su di esso dovrebbe spingere la nave spaziale in una curva parabolica verso sinistra mentre accelera. e il retro per il propulsore sinistro.

Come lo implemento?

Ho trovato qualcosa chiamato "Radian Impulse" su Box2D, farebbe il lavoro?

Vorrei anche la fisica il retromarcia per un po 'la spinta giusta (un po' come una di quelle auto RC economiche con un solo pulsante) ma solo se l'altro propulsore fosse usato entro un certo tempo prima.

Un esempio funzionante (o qualcosa che punta nella giusta direzione) con qualsiasi libreria sarebbe sufficiente.

È stato utile?

Soluzione

Quando hai i razzi al centro e solo uno fuochi, stai dando la tua nave coppia. Per simulare questo dovresti dividere la spinta del tuo razzo in due componenti. Innanzitutto spinge la tua nave in avanti (in direzione in cui è rivolta), la seconda aumenta la velocità di rotazione. Esempio:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top