ShipState next_move(const ShipState& s) { ShipState n = s; float rads = -s.angle * M_PI / 180; n.a_x = sinf(rads) * s.thrust; n.a_y = cosf(rads) * s.thrust - GRAVITY; n.x += n.v_x - n.a_x * 0.5; n.y += n.v_y - n.a_y * 0.5; n.v_x += n.a_x; n.v_y += n.a_y; return n; }