Implementation of a simple gear box.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@1210 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
f0288dd697
commit
b476486fb0
28
src/kart.cpp
28
src/kart.cpp
@ -567,6 +567,30 @@ void Kart::doZipperProcessing (float delta)
|
|||||||
else m_zipper_time_left = 0.0f ;
|
else m_zipper_time_left = 0.0f ;
|
||||||
} // doZipperProcessing
|
} // doZipperProcessing
|
||||||
|
|
||||||
|
#ifdef BULLET
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
float Kart::getActualWheelForce()
|
||||||
|
{
|
||||||
|
if ( m_speed <= m_max_speed*0.25f )
|
||||||
|
{
|
||||||
|
return( getMaxPower() * 2.5f ); // gear 1
|
||||||
|
}
|
||||||
|
else if ( m_speed > m_max_speed*0.25f && m_speed <= m_max_speed*0.5f )
|
||||||
|
{
|
||||||
|
return( getMaxPower() * 1.8f ); // gear 2
|
||||||
|
}
|
||||||
|
else if ( m_speed > m_max_speed*0.5f && m_speed <= m_max_speed*0.75f )
|
||||||
|
{
|
||||||
|
return( getMaxPower() * 1.4f ); // gear 3
|
||||||
|
}
|
||||||
|
else if ( m_speed > m_max_speed*0.75f )
|
||||||
|
{
|
||||||
|
return( getMaxPower() ); // gear 4
|
||||||
|
}
|
||||||
|
return(0.0f);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void Kart::getsProjectile ()
|
void Kart::getsProjectile ()
|
||||||
{
|
{
|
||||||
@ -870,7 +894,7 @@ void Kart::updatePhysics (float dt)
|
|||||||
{
|
{
|
||||||
|
|
||||||
#ifdef BULLET
|
#ifdef BULLET
|
||||||
float engine_power = getMaxPower() + handleWheelie(dt);
|
float engine_power = getActualWheelForce() + handleWheelie(dt);
|
||||||
if(m_attachment.getType()==ATTACH_PARACHUTE) engine_power*=0.2;
|
if(m_attachment.getType()==ATTACH_PARACHUTE) engine_power*=0.2;
|
||||||
|
|
||||||
if(m_controls.accel)
|
if(m_controls.accel)
|
||||||
@ -943,7 +967,7 @@ void Kart::updatePhysics (float dt)
|
|||||||
|
|
||||||
}
|
}
|
||||||
//at low velocity, forces on kart push it back and forth so we ignore this
|
//at low velocity, forces on kart push it back and forth so we ignore this
|
||||||
if(fabsf(m_speed) < 0.13f)
|
if(fabsf(m_speed) < 0.2f) // quick'n'dirty workaround for bug 1776883
|
||||||
m_speed = 0;
|
m_speed = 0;
|
||||||
|
|
||||||
#else // ! BULLET
|
#else // ! BULLET
|
||||||
|
@ -240,6 +240,7 @@ public:
|
|||||||
//have to use this instead of moveable getVelocity to get velocity for bullet rigid body
|
//have to use this instead of moveable getVelocity to get velocity for bullet rigid body
|
||||||
float getSpeed () const {return m_speed; }
|
float getSpeed () const {return m_speed; }
|
||||||
float handleWheelie(float dt);
|
float handleWheelie(float dt);
|
||||||
|
float getActualWheelForce();
|
||||||
#endif
|
#endif
|
||||||
void adjustSpeedWeight(float f);
|
void adjustSpeedWeight(float f);
|
||||||
void forceRescue ();
|
void forceRescue ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user