一部のスプライトをスムーズに回転させるために正規化されたフロートを取得するのに問題があります。補間を使用してスプライトを回転させています。回転のある時点で、スプライトは毎回同じ場所でジャンプします。
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;