Avoid that the kart is 'shaking' backwards/forwards when flying.
This commit is contained in:
parent
8be383015c
commit
bb058deea5
@ -439,6 +439,15 @@ void btKart::updateVehicle( btScalar step )
|
||||
btVector3 kart_up = getChassisWorldTransform().getBasis().getColumn(1);
|
||||
btVector3 terrain_up(0,1,0);
|
||||
btVector3 axis = kart_up.cross(terrain_up);
|
||||
axis.normalize();
|
||||
|
||||
// To avoid the kart going backwards/forwards (or rolling sideways),
|
||||
// set the pitch/roll to 0 before applying the 'straightening' impulse.
|
||||
// TODO: make this works if gravity is changed.
|
||||
btVector3 av = m_chassisBody->getAngularVelocity();
|
||||
av.setX(0);
|
||||
av.setZ(0);
|
||||
m_chassisBody->setAngularVelocity(av);
|
||||
// Give a nicely balanced feeling for rebalancing the kart
|
||||
m_chassisBody->applyTorqueImpulse(axis * m_kart->getKartProperties()->getSmoothFlyingImpulse());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user