Salut !
J'ai lu récemment un petit cours sur JAVAFX, et je voudrai faire une petite application pour m'exercer et assimiler la chose.
Je voudrai faire un petit jeu 2D, ou l'on fasse animer une balle afin qu'elle suit un chemin parabolique (la trajectoire d'une balle de tennis par exemple)
J'utilise pour cela un objet Timeline avec un Interpolator.
J'avoue je ne comprends pas vraiment comment marche l'objet Interpolator, mon problème réside dans le fait que je voudrai faire en sorte qu'au moment ou la balle arrive tout en bas de la fenêtre l'animation s'arrête.
J'ai pensé à utiliser deux méthode:
-La première consiste à arrêter l'animation une fois que la coordonnée Y du centre de la balle (Circle) atteigne la largeur de la fenêtre, sauf que j'ai aucune idée de comment faire![]()
-La deuxième consiste à arrêter l'animation à un certain moment ' Tf ', j'ai une petite formule qui me permet de savoir à quel temps la coordonnée Y atteigne l'endroit voulu, par contre je ne sais pas non plu comment définir le temps maximal d'un Timeline.
Ça serait sympa que vous m'expliquiez comment faire pour les deux méthodes
Voici un petit code de ce que j'ai fait
Merci d'avance, Cordialement Mouley.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Timeline t1 = new Timeline(); t1.setAutoReverse(false); t1.setCycleCount(Timeline.INDEFINITE); t1.getKeyFrames().addAll( new KeyFrame(new Duration(1000 * Tf),new KeyValue(this.centerXProperty(),0,new Interpolator(){ protected double curve(double t){ double resultat = coeffAngleX * t; return - resultat; } })), new KeyFrame(new Duration(1000 * Tf),new KeyValue(this.centerYProperty(),0,new Interpolator(){ protected double curve(double t) { double resultat = (a * t * t) + (coeffAngleY * t); return resultat; } })) );
Partager