add check to avoid divide by zero

This commit is contained in:
Andrew Meadows 2017-05-08 10:59:15 -07:00
parent f00a3cafb6
commit 0f643b7d66

View file

@ -275,6 +275,7 @@ void CharacterController::playerStep(btCollisionWorld* collisionWorld, btScalar
// to move over the _stepPoint at target speed
float horizontalDistance = (_stepPoint - _stepPoint.dot(_currentUp) * _currentUp).length();
float horizontalTargetSpeed = (_targetVelocity - _targetVelocity.dot(_currentUp) * _currentUp).length();
if (horizontalTargetSpeed > FLT_EPSILON) {
float timeToStep = horizontalDistance / horizontalTargetSpeed;
float stepUpSpeed = _stepHeight / timeToStep;
@ -306,6 +307,7 @@ void CharacterController::playerStep(btCollisionWorld* collisionWorld, btScalar
velocity -= vDotUp * _currentUp;
}
}
}
_rigidBody->setLinearVelocity(velocity + _parentVelocity);
_ghost.setWorldTransform(_rigidBody->getWorldTransform());
}