So hatte ich ein Programm, um einen springenden Ball über den Bildschirm mit JavaFX jetzt zu bewegen, jetzt habe ich versucht, bestimmte Werte unter Duration.millis() in meiner Timeline Animation neu formatieren und je niedriger ich es desto schneller der Ball geht aber, jemand hat mir gesagt, dass nicht der beste Weg ist, anstatt zu gehen, ich dynamische Geschwindigkeit fragen sollte hier mein Programm hinzufügen für Bewegung meiner Kugel meines Code ist:Wie bringe ich springenden Ball schneller voran? dynamische Geschwindigkeit?
public class BallPane extends Pane {
public final double radius = 5;
public double x = radius, y = radius;
public double dx = 1, dy = 1;
public Circle circle = new Circle(x, y, radius);
public Timeline animation;
public BallPane(){
circle.setFill(Color.BLACK); // Set ball color
getChildren().add(circle); // Place ball into Pane
// Create animation for moving the Ball
animation = new Timeline(
new KeyFrame(Duration.millis(10), e -> moveBall()));
animation.setCycleCount(Timeline.INDEFINITE);
animation.play();
}
public void moveBall() {
// Check Boundaries
if (x < radius || x > getWidth() - radius) {
dx *= -1; //change Ball direction
}
if (y < radius || y > getHeight() - radius) {
dy *= -1; //change Ball direction
}
x += dx;
y += dy;
circle.setCenterX(x);
circle.setCenterY(y);
} }
wiederum, es wird ein pong-Spiel sein also werde ich 5 Levels haben und in jedem Level möchte ich, dass der Ball sich schneller bewegt. Ich kann das tun, indem ich die Duration.millis() erniedrige, aber mir wurde gesagt, dass das nicht der beste Weg ist, um die Geschwindigkeit zu erhöhen Gehen Sie dabei vor, ohne meine Duration.millis in meinen Time-Line-Animationsparametern zu verringern? Gibt es einen anderen Parameter, den ich hinzufügen oder eine andere Methode der Geschwindigkeit?
Sie vermehren könnten zu tun 'dx' und' dy' um den Faktor Geschwindigkeit. – Oisin