Fix turn(1) doesn't draining energy

Fix using @Melex750 example, thanks!
Fix issue #136
1008-fix
tomangelo2 2017-10-11 18:50:57 +02:00
parent 0de347d430
commit f40756bc46
2 changed files with 13 additions and 2 deletions

View File

@ -109,7 +109,7 @@ Error CTaskTurn::IsEnded()
if ( m_bLeft )
{
if ( angle <= m_startAngle+m_angle )
if ( angle <= m_finalAngle )
{
m_physics->SetMotorSpeedZ(0.0f);
//? m_physics->SetCirMotionY(MO_MOTSPEED, 0.0f);
@ -118,10 +118,15 @@ Error CTaskTurn::IsEnded()
m_object->SetRotationY(m_finalAngle);
return ERR_STOP;
}
if ( !m_bDecel && angle <= m_startAngle+m_angle)
{
m_bDecel = true;
m_physics->SetMotorSpeedZ(-0.5f);
}
}
else
{
if ( angle >= m_startAngle+m_angle )
if ( angle >= m_finalAngle )
{
m_physics->SetMotorSpeedZ(0.0f);
//? m_physics->SetCirMotionY(MO_MOTSPEED, 0.0f);
@ -130,6 +135,11 @@ Error CTaskTurn::IsEnded()
m_object->SetRotationY(m_finalAngle);
return ERR_STOP;
}
if ( !m_bDecel && angle >= m_startAngle+m_angle)
{
m_bDecel = true;
m_physics->SetMotorSpeedZ(0.5f);
}
}
return ERR_CONTINUE;

View File

@ -41,4 +41,5 @@ protected:
float m_finalAngle = 0.0f;
bool m_bLeft = false;
bool m_bError = false;
bool m_bDecel = false;
};