以下に、パス遷移を実装するためのいくつかの方法とコード例を紹介します。
- Timelineを使用した方法:
import javafx.animation.PathTransition; import javafx.animation.Timeline; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.scene.shape.LineTo; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; import javafx.stage.Stage; import javafx.util.Duration; public class PathTransitionExample extends Application { @Override public void start(Stage primaryStage) { // シーンの設定 Group root = new Group(); Scene scene = new Scene(root, 400, 300); // 円の作成 Circle circle = new Circle(10, Color.RED); // パスの作成 Path path = new Path(); path.getElements().add(new MoveTo(20, 20)); path.getElements().add(new LineTo(200, 200)); // パス遷移の作成 PathTransition pathTransition = new PathTransition(); pathTransition.setDuration(Duration.seconds(2)); pathTransition.setPath(path); pathTransition.setNode(circle); pathTransition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT); pathTransition.setCycleCount(Timeline.INDEFINITE); pathTransition.setAutoReverse(true); // アニメーションの開始 pathTransition.play(); // シーンに円を追加 root.getChildren().add(circle); // ステージの設定 primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
この例では、円が指定されたパス(直線)に沿って移動します。PathTransitionクラスのsetDurationメソッドでアニメーションの時間を設定し、setPathメソッドで移動するパスを指定します。setNodeメソッドで移動させるオブジェクト(この場合は円)を指定します。また、setOrientationメソッドでオブジェクトの向きを設定します。この例では、アニメーションを繰り返すためにsetCycleCountメソッドとsetAutoReverseメソッドを使用しています。
他にも、Timelineを使用せずにアニメーションを実装する方法や、複数のパスを組み合わせたアニメーションの方法などもあります。
以上が、JavaFXでパス遷移を実装する方法とコード例です。これを参考にして、自分のアプリケーションに合わせたパス遷移の実装を試してみてください。