Bonjour a tous. Je réalise un jeu de coloriage de type paint. Pour cela j'ai utilisé les codes suivants.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Pdessin.addMouseListener(new MouseListener() { public void mousePressed(MouseEvent e) { x[i]=e.getX()+3; y[i]=e.getY()+235; if(y[i] < 136) y[i] = 136; if(x[i] > 642) x[i] = 642; i++; repaint(); } public void mouseReleased(MouseEvent e) { x[i]=0; y[i]=0; i++; repaint(); } public void mouseClicked(MouseEvent evt){ } public void mouseEntered(MouseEvent evt){ } public void mouseExited(MouseEvent evt){ } }); Pdessin.addMouseMotionListener(new MouseMotionListener() { public void mouseDragged(MouseEvent evt) { x[i] = evt.getX()+8; y[i] = evt.getY()+80; if(y[i] < 100) y[i] = 100; if(x[i] > 642) x[i] = 642; i++; repaint(); } public void mouseMoved(MouseEvent evt){ } });
Mes problèmes sont les suivants:
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 public void paint(Graphics g) { Graphics2D g2D = (Graphics2D)g; switch(couleur) { case 0 : g2D.setColor(Color.black); break; case 1 : g2D.setColor(Color.red); break; } switch(trait) { case 1 : g2D.setStroke(new BasicStroke(2.5f)); break; case 2 : g2D.setStroke(new BasicStroke(5.0f)); break; } for(int j=0 ; j<i ; j++) if((x[j]+y[j] != 0) && (x[j+1]+y[j+1] !=0)) g2D.drawLine(x[j], y[j], x[j+1], y[j+1]); }
- Le premier "clic" pour dessiner se traduit par un long trait vertical non désiré.
- Ce que je dessine est à environ 2cm au dessus du curseur.
Je n'arrive pas a comprendre d'où vient mon problème. Merci de m'éclairer à ce sujet. bonne soirée
Partager