Bonne utilisation des animations
Salut à tous
Je suis en train de développer un petit jeu dans lequel j'ai des animations.
Je dispose d'une image sur laquelle des pions se déplacent tandis que d'autres éléments changent simplement d'image.
Voici ce que j'ai fait en swing
Un classe Visu qui traite tous les dessins de ma surface de jeu.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public void anime(Pion uniteEnMain, boolean affOmbre, boolean affJauges) {
int nactif = actif + 1;
if (nactif == 2)
nactif = 0;
Graphics2D g2 = vues[nactif].createGraphics();
g2.drawImage(fond, 0, 0, null);
dessineFlammes(nactif);
dessineFigurines(nactif, affOmbre, affJauges, uniteEnMain);
actif = nactif;
} |
Une classe Animation qui déclenche l'affichage de mon interface
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public class Animation extends TimerTask {
private JPanel panel = null;
public Animation(JPanel Panel) {
panel = Panel;
}
@Override
public void run() {
panel.updateUI();
}
} |
La classe Panel qui affiche ma surface de jeu
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public PanVueTest(ParamDessin pDessin, Graphiques Graphs, ParametresJeu pJeu) {
paramD = pDessin;
lesGraph = Graphs;
paramJeu = pJeu;
tAnim = new Timer();
tAnim.scheduleAtFixedRate(new Animation(this), 0, 40);
}
@Override
public void paintComponent(final Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
vue.anime(uniteEnMain, affOmbre, affJauges);
g2.drawImage(vue.getImage(), 0, 0, getWidth(), getHeight(), xorg, yorg,xorg + (int) (getWidth() * zoom[izoom]), yorg + (int) (getHeight() * zoom[izoom]), null);
} |
Je voudrais porter ça en JavaFX malheureusement je suis un peu perdu. Pour les animation j'ai vue dans les doc et exemple qu'on utilisait différent objets (Timeline, keyFrame) mais dans mon cas j'ai un peu de mal à voir comment faire.
Par exemple comment je change l'image d'un objet. Dans mon animation j'ai des objets qui vont se déplacer plus ou moins vite et ils ne finissent pas leur mouvement tous en même temps. comment je gère ça