package animationPersonnages; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JPanel; import personnages.Bonhomme; import personnages.BonhommeRV; import personnages.Distance; import personnages.Personnage; class DessinRendezVous extends JPanel{ private static final long serialVersionUID = 1L; private IHMRendezVous panneau; protected int largeur = 600; protected int hauteur = 400; DessinRendezVous(IHMRendezVous panneau) { this.panneau = panneau; setPreferredSize(new Dimension(largeur, hauteur)); } public void paintComponent(Graphics g) { super.paintComponent(g); if (panneau.getBonhommeG() != null) panneau.getBonhommeG().dessiner(g); if (panneau.getBonhommeD() != null) panneau.getBonhommeD().dessiner(g); } } public class IHMRendezVous extends JPanel implements ActionListener { private static final long serialVersionUID = 1L; private BonhommeRV bonhommeG; private BonhommeRV bonhommeD; private JButton creer = new JButton("creer"); private JButton demarrer = new JButton("demarrer"); private DessinRendezVous dessin = new DessinRendezVous(this); public static Random aleat; static { aleat=new Random(); } public IHMRendezVous() { JPanel panneauBoutons = new JPanel(); setLayout(new BorderLayout(5, 5)); creer.addActionListener(this); panneauBoutons.add(creer); demarrer.addActionListener(this); panneauBoutons.add(demarrer); setBackground(Color.WHITE); add(panneauBoutons, BorderLayout.NORTH); add(dessin, BorderLayout.CENTER); } public BonhommeRV getBonhommeG() { return bonhommeG; } public BonhommeRV getBonhommeD() { return bonhommeD; } public void actionPerformed(ActionEvent e) { int vitesse; Distance distance=new Distance(); if (((bonhommeG != null) && (bonhommeG.isAlive()))|| ((bonhommeD != null) && (bonhommeD.isAlive()))) return; if (e.getSource() == creer) { if (bonhommeG != null) { bonhommeG.supprimer(); } vitesse = 50 + Math.abs(aleat.nextInt() % 100); bonhommeG = new BonhommeRV(dessin, dessin.largeur / 20, 2 * dessin.hauteur / 3, 40, Color.BLUE,distance); bonhommeG.setDirection(Personnage.DROITE); bonhommeG.setVitesse(vitesse); if (bonhommeD != null) { bonhommeD.supprimer(); } vitesse = 50 + Math.abs(aleat.nextInt() % 100); bonhommeD = new BonhommeRV(dessin, 19 * dessin.largeur / 20, 2 * dessin.hauteur / 3, 40, Color.RED, distance); bonhommeD.setDirection(Personnage.GAUCHE); bonhommeD.setVitesse(vitesse); distance.setDistance(bonhommeD.getX() - bonhommeG.getX()); repaint(); } if (e.getSource() == demarrer) { if(bonhommeG == null) return; if(bonhommeG.isAlive()) return; if(bonhommeD == null) return; if(bonhommeD.isAlive()) return; bonhommeG.start(); bonhommeD.start(); } } }