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

View File

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