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.
Une classe Animation qui déclenche l'affichage de mon interface
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
La classe Panel qui affiche ma surface de jeu
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 public class Animation extends TimerTask { private JPanel panel = null; public Animation(JPanel Panel) { panel = Panel; } @Override public void run() { panel.updateUI(); } }
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.
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 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); }
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
Partager