PR

パスに沿った回転

 ノードをパスに沿わせて移動させる時に、パスの接線方向に応じてノードを回転させたい場合があります。

 このような場合、PathTransitionクラスのorientationプロパティで指定します。orientationプロパティの型はenumのPathTransition.OrientationTypeです。

 OrientationTypeではNONEとORTHOGONAL_TO_TANGENTを定義しています。回転させる場合はORTHOGONAL_TO_TANGENTを指定します。

 では、先ほどのサンプルにorientationを指定するコードを追加してみましょう。

リスト9●パスに沿ってノードを回転させる
        // アニメーションの初期状態まで回転させる
        duke.setRotate(135.0);
        
        // パスに沿って回転させる
        transition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
図8●パスに沿わせて回転させる
図8●パスに沿わせて回転させる
[画像のクリックで拡大表示]

 青字で示したようにノードを回転させているのは、先ほど初期位置に移動させたのと同様に、アニメーションの開始点での角度に合わせているためです。

 そして、赤字で示したようにORTHOGONAL_TO_TANGENTを指定して、回転を行なうようにします。

 実行した結果が図8です。角の部分でDukeが回転していることが分かります。