Javafx pong?
Hallo und zwar wäre meine frage wie ich es machen kann, dass der Circle sich automatisch bewegt? Vielen dank
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, JavaFX
Du brauchst ein Canvas-Element, auf dem die Spielelemente gezeichnet werden und einen Timer, der die Zeichenfläche immer wieder neuzeichnen lässt.
Beispiel:
var graphicsContext = yourCanvas.getGraphicsContext2D();
var delay = 5;
var timer = new Timeline(new KeyFrame(Duration.millis(delay), evt -> draw(graphicsContext)));
timer.setCycleCount(Timeline.INDEFINITE);
timer.play();
Dazu brauchst du noch eine draw-Methode:
void draw(GraphicsContext graphicsContext) {
// draw board elements ...
}
Die Ballposition speicherst du dir in einem Feld, sodass dessen Zustand über die draw-Aufrufe hinweg erhalten bleibt. Um den Ball zu bewegen, brauchst du nur den Feldwert ändern.
Beispiel:
private int ballXPosition = 0;
void draw(GraphicsContext graphicsContext) {
graphicsContext.setFill(Color.WHITE);
graphicsContext.fillRect(0, 0, yourCanvas.getWidth(), yourCanvas.getHeight());
++ballXPosition;
graphicsContext.setFill(Color.RED);
graphicsContext.fillOval(ballXPosition, 10, 10, 10);
}
Bei jedem Aufruf von draw wird mittels eines weißen Rechtecks zuerst die Zeichenfläche geleert. Danach wird die X-Position erhöht und der Kreis gezeichnet.