2017-04-11 12 views
0

私はjavafxを使って簡単なゲームを作ろうとしているコーディングの初心者です。現時点では、画面を一定の速度で落とす矩形を取得しようとしています。私は、矢印を押し下げなければならないEventHandlerメソッドで働いていたgetLayoutY()を使ってみましたが、オブジェクトをユーザの入力なしで転落/移動させたいのです。私が検索するリソースには、主にスプライトアニメーションが含まれていますが、それは私が理解するには少し複雑です。 これは長方形である:javafxで一定の速度でオブジェクトを落としたり動かす方法は?

Rectangle rect2 = new Rectangle();     
    rect2.setX(500); 
    rect2.setY(500); 
    rect2.setWidth(100); 
    rect2.setHeight(100); 
    rect2.setFill(Color.BLUE); 
    scene.getChildren().addAll(rect2); 

このコードはscene.setOnKeyPressed(にのみ働いていた)...メソッド

rect2.setLayoutY(rect2.getLayoutY() + 10); 
+1

[アニメーションAPI](http://docs.oracle.com/javase/8/jav afx/visual-effects-tutorial/animations.htm#JFXTE149)、特に['TranslateTransition'](http://docs.oracle.com/javase/8/javafx/api/javafx/animation/TranslateTransition.html)を参照してください。 (もっと)高度なアニメーションテクニックについては、http://svanimpe.be/blog/game-loops-fx.html(http://svanimpe.be/blog/game-loops.htmlに依存しています)を参照してください。 –

答えて

0

私は遷移は何が必要だと思う:http://docs.oracle.com/javafx/2/animations/basics.htm

私はあなたケース(テストされていない):

Rectangle rect2 = new Rectangle();     
rect2.setX(500); 
rect2.setY(500); 
rect2.setWidth(100); 
rect2.setHeight(100); 
rect2.setFill(Color.BLUE); 
scene.getChildren().addAll(rect2); 
Path path = new Path(); 
path.getElements().add (new MoveTo (0, 0)); 
path.getElements().add (new LineTo(0, 100)); 

PathTransition pathTransition = new PathTransition(); 
pathTransition.setDuration(Duration.millis(10000)); 
pathTransition.setNode(cbTypeCrc); 
pathTransition.setPath(path); 
pathTransition.setOrientation(OrientationType.NONE); 
pathTransition.setAutoReverse(true); 
pathTransition.play(); 
+0

'TranslateTransition'はパスが単なる直線なので、おそらくもっと簡単でしょう。参考までに、リンクしたドキュメントの最新バージョンはhttp://docs.oracle.com/javase/8/javafx/visual-effects-tutorial/animations.htm#JFXTE149にあります。 –

関連する問題