Make sure there is always enough push back from kart-terrain collisions
to avoid karts getting stuck into the wall.
This commit is contained in:
parent
0a7234df84
commit
886c0e3e9f
@ -1825,8 +1825,11 @@ void Kart::crashed(const Material *m, const Vec3 &normal)
|
|||||||
impulse.normalize();
|
impulse.normalize();
|
||||||
else
|
else
|
||||||
impulse = Vec3(0, 0, -1); // Arbitrary
|
impulse = Vec3(0, 0, -1); // Arbitrary
|
||||||
// impulse depends of kart speed - and speed can be negative
|
// Impulse depends of kart speed - and speed can be negative
|
||||||
impulse *= sqrt(fabsf(getSpeed()))
|
// If the speed is too low, karts can still get stuck into a wall
|
||||||
|
// so make sure there is always enough impulse to avoid this
|
||||||
|
float abs_speed = fabsf(getSpeed());
|
||||||
|
impulse *= ( abs_speed<10 ? 10.0f : sqrt(abs_speed) )
|
||||||
* m_kart_properties->getCollisionTerrainImpulse();
|
* m_kart_properties->getCollisionTerrainImpulse();
|
||||||
m_bounce_back_time = 0.2f;
|
m_bounce_back_time = 0.2f;
|
||||||
m_vehicle->setTimedCentralImpulse(0.1f, impulse);
|
m_vehicle->setTimedCentralImpulse(0.1f, impulse);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user