-
Notifications
You must be signed in to change notification settings - Fork 1
/
PanelMap.java
90 lines (73 loc) · 2.92 KB
/
PanelMap.java
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
90
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.* ;
public class PanelMap extends JPanel {
private int aLargeurCarreau;
private int aHauteurCarreau;
private Partie aPartie;
public PanelMap(Partie pPartie){
super();
this.setBackground(Color.black);
aLargeurCarreau = this.getWidth()/pPartie.getLargeur();
aHauteurCarreau = this.getHeight()/ pPartie.getHauteur();
aPartie = pPartie;
}
@Override
public void paintComponent (final Graphics g)
{
aLargeurCarreau = this.getWidth() / aPartie.getLargeur();
aHauteurCarreau = this.getHeight() / aPartie.getHauteur();
dessineMatrice(g);
}
public void dessineMatrice(final Graphics g) {
for(int i=0; i< aPartie.getLargeur(); i++) {
for(int j=0; j< aPartie.getHauteur(); j++) {
int pPosHautGaucheX = i*aLargeurCarreau;
int pPosHautGaucheY = j*aHauteurCarreau;
int pPosBasDroiteX = (i+1)*aLargeurCarreau;
Image img;
int pPosBasDroiteY = (j+1)*aHauteurCarreau;
if(aPartie.getTerrain()[i][j].getType().getDependance()){
img = Slatch.aImages.get("TERRE"+ aPartie.getTerrain()[i][j].getType().getImage() + aPartie.getTerrain()[i][j].getJoueur());
}
else{
img = Slatch.aImages.get(""+ aPartie.getTerrain()[i][j].getType().getImage() + aPartie.getTerrain()[i][j].getJoueur());
}
g.drawImage(img, pPosHautGaucheX, pPosHautGaucheY, pPosBasDroiteX-pPosHautGaucheX, pPosBasDroiteY-pPosHautGaucheY, this);
}
}
}
public Point coordclickUnite (int pX, int pY)
{
int clickX = pX;
int clickY = pY;
Point point = new Point();
for(int i = 0 ; i < aPartie.getLargeur() ; i++)
{
for(int j = 0 ; j < aPartie.getHauteur() ; j++)
{
// Position de la case selectionnee
int pPosHautGaucheX = i*aLargeurCarreau;
int pPosHautGaucheY = j*aHauteurCarreau;
int pPosBasDroiteX = (i+1)*aLargeurCarreau;
int pPosBasDroiteY = (j+1)*aHauteurCarreau;
if(pPosHautGaucheY<=clickY && clickY<pPosBasDroiteY && pPosHautGaucheX<=clickX && clickX<pPosBasDroiteX)
{
point.setLocation(i, j);
}
}
}
return point;
}
public Partie getPartie(){
return aPartie;
}
public int getLargeurCarreau(){
return aLargeurCarreau;
}
public int getHauteurCarreau(){
return aHauteurCarreau;
}
}