Bonjour,
Je suis en train de m’entraîner à coder, pour cela je code un petit jeu de ping pong à deux joueur sur le même clavier, seulement quand je déplace la raquette elle ne bouge pas, je ne vois ps où est mon problème.
Voici mon code:
//Classe Test :
//Classe MyKeyAdapter :
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 import javax.swing.JFrame; public class Test { public static void main(String[] args) { MyKeyAdapter adapt = new MyKeyAdapter(); JFrame fen = new JFrame(); fen.setTitle("salut"); fen.setSize(400,200); fen.addKeyListener(adapt); fen.setVisible(true); fen.setContentPane(new Table()); fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); int i = 100; while (i > 0) { ThreadA tA = new ThreadA(adapt.doAction()); tA.start(); ThreadB tB = new ThreadB(adapt.doAction2()); tB.start(); try { Thread.sleep(60); } catch (InterruptedException ie) { ie.printStackTrace(); } } } }
//Classe ThreadA:
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 import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class MyKeyAdapter extends KeyAdapter { private boolean isAPressed = false; private boolean isBPressed = false; public void keyPressed(KeyEvent e) { if(e.getKeyCode()== 0x41) { isAPressed = true; } if(e.getKeyCode()== 0x42) { isBPressed = true; } } public void keyReleased(KeyEvent e) { if(e.getKeyCode()== 0x41) { isAPressed = false; } if(e.getKeyCode()== 0x42) { isBPressed = false; } } public boolean doAction() { return isAPressed; } public boolean doAction2() { return isBPressed; } }
//Classe ThreadB:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class ThreadA extends Thread { private boolean joueur1; Table tab = new Table(); public ThreadA(boolean joueur1) { this.joueur1 = joueur1; } public void run() { if(joueur1 == true) System.out.println(joueur1 + " Salut."); tab.setPosYHRG(tab.getPosYHRG()-10);} }
//Classe Table:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class ThreadB extends Thread { private boolean joueur1; public ThreadB(boolean joueur1) { this.joueur1 = joueur1; } public void run() { if(joueur1 == true) System.out.println(joueur1 + " Coucou."); } }
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 import java.awt.Color; import java.awt.Graphics; import javax.swing.JPanel; public class Table extends JPanel { private int posXLT = 10; private int posYHT = 10; private int posXLRG = 10; private int posYHRG = 10; private int posXLRD = 10; private int posYHRD = 10; public void paintComponent (Graphics g) { g.setColor(new Color(240,240,240)); g.fillRect(posXLT, posYHT, (this.getWidth()-posXLT*2), (this.getHeight()-posYHT*2)); g.setColor(new Color(0,0,0)); g.fillRect(posXLRG,posYHRG+10,(this.getHeight()/8/4),(this.getHeight()/8)); g.fillRect(this.getWidth()-20-(this.getHeight()/8/4),posYHRD+10,(this.getHeight()/8/4),(this.getHeight()/8)); } public int getPosYHRG() { return posYHRG; } public void setPosYHRG(int i) { } }
Partager