Схема для моего Ball
класса:
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.beans.property.DoubleProperty;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.util.Duration;
public class Ball extends Pane{
public final double radius = 20;
private double x = radius, y = radius;
private double dx = 1, dy = 1;
private Circle circle = new Circle(x, y, radius);
private Timeline animation;
public Ball() {
circle.setFill(Color.GREEN); // Set ball color
getChildren().add(circle); // Place a ball into this pane
// Create an animation for moving the ball
//Not sure if I need an animation
public void play() {
animation.play();
}
public void pause() {
animation.pause();
}
protected void moveLeft() {
}
protected void moveRight() {
}
protected void moveUp() {
}
protected void moveDown() {
}
}
Я не совсем уверен, что бы я использовал в своих методах для перемещения влево, вправо и т. Д.
Что у меня естьпока что для моего исполняемого класса:
public class BallMover extends Application{
Ball ballPane = new Ball(); // Create a ball pane
@Override // Override the start method in the Application class
public void start(Stage primaryStage) {
// Hold four buttons in an HBox
HBox ballcontrols = new HBox();
Button btLeft = new Button("Left");
Button btRight = new Button("Right");
Button btUp = new Button("Up");
Button btDown = new Button("Down");
ballcontrols.getChildren().addAll(btLeft, btRight, btUp, btDown);
// Create and register the handlers
btLeft.setOnAction(e -> ballPane.moveLeft());
btRight.setOnAction(e -> ballPane.moveRight());
btRight.setOnAction(e -> ballPane.moveUp());
btRight.setOnAction(e -> ballPane.moveDown());
ballPane.setOnMouseClicked(e -> {
});
ballPane.setOnKeyPressed(e -> {
});
BorderPane borderPane = new BorderPane();
borderPane.setCenter(ballPane);
borderPane.setBottom(ballcontrols);
BorderPane.setAlignment(ballcontrols, Pos.CENTER);
// Create a scene and place it in the stage
Scene scene = new Scene(borderPane, 200, 150);
primaryStage.setTitle("ControlCircle"); // Set the stage title
primaryStage.setScene(scene); // Place the scene in the stage
primaryStage.show(); // Display the stage
}
Как я могу использовать обработчики событий для перемещения мяча?Что бы мне пришлось добавить в методы moveLeft()
moveRight()
moveUp()
moveDown()
, чтобы эта работа работала?