У меня проблемы с получением нормализованного плавания для плавного вращения некоторых спрайтов. Я использую интерполяцию для поворота спрайтов. В определенный момент вращения спрайт будет прыгать каждый раз в одном и том же месте.
name.angle = (name.getBody().getTransform().getRotation() * alpha + name.prevAngle * (1.0f - alpha));
Я посмотрел в Интернете и нашел пару способов нормализовать угол между -pi и +pi, но я не могу заставить их работать в моей ситуации.
Следующее не работает
if (name.angle > Math.PI)
name.angle += 2 * Math.PI;
else if (name.angle < -Math.PI)
name.angle -= 2 * Math.PI;
Следующее работает
name.angle = name.angle < 0 ? MathUtils.PI2 - (-name.angle % MathUtils.PI2) : name.angle % MathUtils.PI2;