我正在用 JavaFX 制作一個關鍵射擊游戲,其中有浮動的單詞在螢屏上移動。一旦用戶鍵入正確的單詞,我想在單詞上發射一個“激光”(一個細長的紅色矩形)。當用戶鍵入正確的單詞時,我需要單詞的 x 和 y 值,這樣我就可以使矩形移動到那個位置。我將如何獲取關鍵值?
這是我的時間線代碼:
final Timeline timeline = new Timeline();
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(wordTime),
new KeyValue (word.getWordBox().translateXProperty(), rand.nextInt(100, 500))));
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(wordTime),
new KeyValue (word.getWordBox().translateYProperty(), rand.nextInt(0, 150))));
wordTime 是從用戶輸入中獲取的一個值,它改變了螢屏上單詞的長度。word.getWordBox() 是在螢屏上移動的單詞。請讓我知道我是否需要重組這個問題,提供更多細節等。
我試著用
timeline.getKeyFrames().get(1).getValues()
獲取值,但它只是給了我似乎不正確的 KeyValues 串列。如果這是正確的,請告訴我。
uj5u.com熱心網友回復:
可能最方便獲取的值是單詞在其容器(“父節點”)中的位置。您可以直接使用
Bounds bounds = word.getWordBox().getBoundsInParent();
然后,例如,做
double x = bounds.getCenterX();
double y = bounds.getCenterY();
等等
由于boundsInParent考慮了應用于節點的任何變換,因此這將包括timeline.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/535485.html
標籤:爪哇动画javafx
