Путаница в том, почему объект не рисует круг при попытке получить размер окна - PullRequest
0 голосов
/ 09 января 2019

Итак, у меня в одном классе создается панель

@Override //Overridden nerd
public void start(Stage primaryStage) {

    //makes a ball
    Ball ball = new Ball();

    //pause and resume animation
    ball.setOnMousePressed(e -> ball.pause());
    ball.setOnMouseReleased(e -> ball.play());

    //increase/decrease speed
    ball.setOnKeyPressed(e-> {
    if(e.getCode() == KeyCode.UP) {
        ball.increaseSpeed();
    }
    else if (e.getCode() == KeyCode.DOWN) {
        ball.decreaseSpeed();
        }
    });

    //creating a scene and setting its background
    Scene scene = new Scene(ball, 500, 500);
    primaryStage.setTitle("Random Walker");
    primaryStage.setScene(scene);
    primaryStage.show();

    ball.requestFocus();
    }

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

и я пытаюсь получить анимацию, чтобы запустить мяч в центре от панели, а затем отскочить от стен (я еще не на подпрыгивающей части, так что я знаю, что это еще не идеально, но я пытаюсь)

Моя проблема в том, что, когда я пытаюсь заставить шарик отрисовать текущий размер окна, он вообще ничего не рисует, но будет работать, если я вручную введу размер экрана по умолчанию. любое понимание было бы замечательно, поскольку я некоторое время пытался найти какой-либо способ сделать это, спасибо.

public class setup extends Application {

    @Override //Overridden nerd
    public void start(Stage primaryStage) {

    //makes a ball
    Ball ball = new Ball();

    //pause and resume animation
    ball.setOnMousePressed(e -> ball.pause());
    ball.setOnMouseReleased(e -> ball.play());

    //increase/decrease speed
    ball.setOnKeyPressed(e-> {
    if(e.getCode() == KeyCode.UP) {
        ball.increaseSpeed();
    }
    else if (e.getCode() == KeyCode.DOWN) {
        ball.decreaseSpeed();
        }
    });

    //creating a scene and setting its background
    Scene scene = new Scene(ball, 500, 500);
    primaryStage.setTitle("Random Walker");
    primaryStage.setScene(scene);
    primaryStage.show();

    ball.requestFocus();
    }

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