bonjour,
Je suis en train de réaliser un Tétris en java, je rencontre un petit soucis avec deux de mes classes. Je considère aire de jeu de mon Tétris comme un tableau de 10 unité sur 20, en sachant qu'une unité vaut 40px jusque là pas de problème. à vrai dire ça marche super bien mais mon tableau aireDeJeu est créé dans la classe Ecran et je voudrais exécuter une condition dans ma classe figure sur ce tableau(ligne 78) . cependant il ne le reconnait pas. Comment puis-je faire?
voici le code des dex classe:
la classe Figure:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * La classe ecran sera l'ecran sur lequel les figures apparaitrons. */ public class Ecran extends JPanel { int [][] aireDeJeu; Figure f; private int i; public Ecran() { super(); aireDeJeu = new int[10][21]; for(int i = 0;i<10;i++) { for(int j=0;j<20;j++) { aireDeJeu[i][j]=0; } } aireDeJeu[5][15]=1; aireDeJeu[8][4]=1; aireDeJeu[6][12]=1; for(int i = 0;i<10;i++) { aireDeJeu[i][15] = 1; } f = new T(); this.add(f); } public void paint(Graphics g) { super.paint(g); setBackground(Color.WHITE); f.paint(g); // Afficher toutes les figures déjà positionnées for(int i = 0;i<10;i++) { for(int j=0;j<20;j++) { if(aireDeJeu[i][j]==1) { g.fillRect(i*40,j*40,40,40); setBackground(Color.BLACK); } } } setBackground(Color.WHITE); } public void changeOrientationFigure() { f.changeOrientation(); repaint(); } public void deplacementFigureGaucheBis() { f.deplacementFigureGauche(); repaint(); } public void deplacementFigureDroiteBis() { f.deplacementFigureDroite(); repaint(); } }
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * Décrivez votre classe Figure ici. * * @author (votre nom) * @version (un numéro de version ou une date) */ public class Figure extends JComponent implements Runnable { int x,y;//coord int largeur; int[] largeurs; int orientation;//orientation : 0,1,2 ou 3 int[][][] figure;//tableau d'entiers, orientation puis 4 cases sur 4 cases private Thread figureTombe; public Figure() { figureTombe = new Thread(this); x = 3; y = 0; orientation = 1; } public void tombe() { figureTombe.start(); } public void paint(Graphics g) { } public void changeOrientation() { orientation = (orientation+1)%4; largeur = largeurs[orientation]; if(x == 10 - this.largeur+1) { x = x - 1; } } public void deplacementFigureGauche() { if(x > 0)// tant que x est positive { x = x - 1; } } public void deplacementFigureDroite() { if(x < 10-this.largeur)// tant que x est plus petit que 10 { x = x + 1; } } /* * fait descendre la figure */ public void run() { while(figureTombe.isAlive()) { try { Thread.sleep(500); getParent().repaint(); for(int i = 0;i<10;i++) { for(int j=0;j<20;j++) { if(this.aireDeJeu[i][j]==1) { figureTombe.interrupt(); figureTombe = null; } } } }catch(InterruptedException ie){} y++; } } }
Partager