-
Notifications
You must be signed in to change notification settings - Fork 1
/
PanelInfo.java
144 lines (127 loc) · 5.57 KB
/
PanelInfo.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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
import java.awt.Color;
/**
* Panel de la barre info : affiche les inforamtions liees a la partie
*
* @author jonathan
* @version 1.0
*/
public class PanelInfo extends JPanel
{
int menuSize;
int jourSize;
int joueurSize;
int argentSize;
int suivantSize;
int espaceSize;
int barreSize;
/**
* Constructor for objects of class IHM_Panel_Barre
*/
public PanelInfo()
{
super();
this.setPreferredSize(new Dimension(800, 70));
}
/**
* Affiche le decor (appelé lors des repaint : a eviter)
*/
@Override
public void paintComponent (final Graphics g)
{
afficheBarreInfo(g);
}
/**
* Methode appelee lors d'un click
*/
public void coordclickUnite (int pX, int pY)
{
// Bouton SUIVANT fonctionnement
if(Slatch.partie.getJoueur(Slatch.partie.getJoueurActuel()).estUneIA()==false && 0<pY && pY<this.getHeight() && this.getWidth()-suivantSize-espaceSize<pX && pX<this.getWidth() && Slatch.ihm.getPanel().getClickOK())
{
// Efface le petit menu
Slatch.ihm.getPanel().setMenuUniteAction(false);
// Efface le menu description
Slatch.ihm.getPanel().setMenuUniteDescription(false);
// Efface le menu shop
Slatch.ihm.getPanel().setMenuShop(false);
// Efface le menu
Slatch.ihm.getPanel().setMenu(false);
// Avertir Moteur
Slatch.moteur.enleverSurbrillance();
Slatch.moteur.passeTour();
Slatch.ihm.getPanel().effaceMenuUniteDescription();
this.repaint();
Slatch.ihm.getPanel().repaint();
}
// Bouton Menu fonctionnement
if(Slatch.partie.getJoueur(Slatch.partie.getJoueurActuel()).estUneIA()==false && 0<pY && pY<this.getHeight() && 0<pX && pX<menuSize+2*espaceSize)
{
Slatch.ihm.getPanel().setMenu(true);
this.repaint();
Slatch.ihm.getPanel().repaint();
}
}
/**
* Affiche la barre d'informations en haut de l'ecran
*/
public void afficheBarreInfo (final Graphics g) {
// Fond de panel
afficheImageRedim("barreinfo",0, 0,this.getWidth(),this.getHeight(),g);
String menu = "MENU";
String jour = "JOUR : "+Slatch.partie.getTour();
String joueur = "JOUEUR : "+Slatch.partie.getJoueurActuel();
String argent = "ARGENT : "+Slatch.partie.getJoueur(Slatch.partie.getJoueurActuel()).getArgent()+"¤";
String suivant = "SUIVANT";
String espace = " ";
String barre = " | ";
// Police
Font font;
font = Slatch.fonts.get("BlackOps").deriveFont(Font.PLAIN, 8+25*this.getWidth()/1500);
g.setFont(font);
FontMetrics fm=getFontMetrics(font);
menuSize = fm.stringWidth(menu);
jourSize = fm.stringWidth(jour);
joueurSize = fm.stringWidth(joueur);
argentSize = fm.stringWidth(argent);
suivantSize = fm.stringWidth(suivant);
espaceSize = fm.stringWidth(espace);
barreSize = fm.stringWidth(barre);
int decaleX=3;
int decaleY=3;
int Y=45;
// Ombre
g.setColor(Color.black);
g.drawString(menu, espaceSize+decaleX, Y+decaleY);
g.drawString(barre, espaceSize+menuSize+decaleX, Y+decaleY);
g.drawString(jour, espaceSize+menuSize+barreSize+decaleX, Y+decaleY);
g.drawString(barre, espaceSize+menuSize+barreSize+jourSize+decaleX, Y+decaleY);
g.drawString(joueur, espaceSize+menuSize+barreSize+jourSize+barreSize+decaleX, Y+decaleY);
g.drawString(barre, espaceSize+menuSize+barreSize+jourSize+barreSize+joueurSize+decaleX, Y+decaleY);
if(!Slatch.partie.getJoueur(Slatch.partie.getJoueurActuel()).estUneIA() || !Slatch.partie.getBrouillard())
g.drawString(argent, espaceSize+menuSize+barreSize+jourSize+barreSize+joueurSize+barreSize+decaleX, Y+decaleY);
g.drawString(suivant, this.getWidth()-suivantSize-espaceSize+decaleX, Y+decaleY);
g.setColor(Color.white);
g.drawString(menu, espaceSize, Y);
g.drawString(barre, espaceSize+menuSize, Y);
g.drawString(jour, espaceSize+menuSize+barreSize, Y);
g.drawString(barre, espaceSize+menuSize+barreSize+jourSize,Y);
g.drawString(joueur, espaceSize+menuSize+barreSize+jourSize+barreSize, Y);
g.drawString(barre, espaceSize+menuSize+barreSize+jourSize+barreSize+joueurSize, Y);
if(!Slatch.partie.getJoueur(Slatch.partie.getJoueurActuel()).estUneIA() || !Slatch.partie.getBrouillard())
g.drawString(argent, espaceSize+menuSize+barreSize+jourSize+barreSize+joueurSize+barreSize, Y);
g.drawString(suivant, this.getWidth()-suivantSize-espaceSize, Y);
}
/**
* Affiche une image en fond d'ecran
*/
private void afficheImageRedim (final String pURL, final int pPosHautGaucheX, final int pPosHautGaucheY,final int pPosBasDroiteX, final int pPosBasDroiteY, final Graphics g) {
Image img = Slatch.aImages.get(pURL);
g.drawImage(img, pPosHautGaucheX, pPosHautGaucheY, pPosBasDroiteX-pPosHautGaucheX, pPosBasDroiteY-pPosHautGaucheY, Slatch.ihm.getPanel());
}
}