gpt4 book ai didi

java - AnimationTimer & JavaFX : Rectangle won't move horizontally using the setTranslateX() method. 如何移动矩形?

转载 作者:行者123 更新时间:2023-12-02 02:00:11 27 4
gpt4 key购买 nike

我正在尝试制作一个游戏,其中我有类矩形的障碍,并让它左右滑动。然而,虽然看起来应该可以工作,但我命名为障碍物 1 的矩形却没有任何移动。

import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class SemiCircleMan extends Application {


public Pane pane = new Pane();
public AnimationTimer animate;
public double obstacle1Position = 0;
public int obstacle1Direction = 1;

public void start(Stage primaryStage) {

Scene scene = new Scene(pane, 800, 600);

Rectangle obstacle1 = new Rectangle(100, 125, 25, 25);
pane.getChildren().add(obstacle1);
obstacle1Position += 3 * obstacle1Position;

animate = new AnimationTimer() {

@Override
public void handle(long now) {

if (obstacle1.getX() <= 500) {
obstacle1.setTranslateX(obstacle1Position); //attempt to only make it go right
}

};
animate.start();


primaryStage.setScene(scene);
primaryStage.show();
}


public static void main(String[] args) {
launch(args);
}



}

我排除了其他代码,我确信这些代码不会影响这一点,因为其他代码只处理移动其他东西。再次,使用此代码,我的障碍物 1 保持静止。有谁知道怎么让它滑动吗?

最佳答案

您的代码(至少)有两个问题。

  1. obstacle1Position 始终为零。
  2. 您假设如果设置translateX,x 值将会改变。这不是真的。 x 值属于几何图形,translateX 仅修改其变换。

关于java - AnimationTimer & JavaFX : Rectangle won't move horizontally using the setTranslateX() method. 如何移动矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51699560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com