SAe/SAe2.1/commentente/SAé/VueCase.java

191 lines
8.6 KiB
Java
Raw Normal View History

2023-05-19 17:13:41 +02:00
import java.awt.*;
import javax.swing.*;
2023-06-23 13:40:21 +02:00
import javax.imageio.*;
import java.io.*;
2023-05-19 17:13:41 +02:00
public class VueCase extends JPanel {
private Case caseN; //Référence vers l'objet Case associé à la vue
public VueCase(Case c) {
this.caseN = c; //Associe l'objet Case passé en paramètre à la vue
this.repaint(); //Redessine la vue
}
@Override
public void paintComponent(Graphics p) {
super.paintComponent(p);
Graphics p2 = p.create();
if (this.isOpaque()) {
//Obligatoire : on repeint toute la surface avec la couleur de fond
p2.setColor(this.getBackground());
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
}
if (this.caseN.type.equals("monstre")) {
//Dessine un rectangle rouge pour représenter un monstre
p2.setColor(Color.RED);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Monstre, Pv restant :" + caseN.getLabelPv(), (this.getWidth() / 2) - 50, (this.getHeight() / 2) - 10);
2023-06-23 13:40:21 +02:00
try{
p2.drawImage(ImageIO.read(new File("./images/monstre.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("monstreglace")) {
//Dessine un rectangle rouge pour représenter un monstre
p2.setColor(Color.RED);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Monstre de glace, Pv restant :" + caseN.getLabelPv(), (this.getWidth() / 2) - 90, (this.getHeight() / 2) - 10);
try{
p2.drawImage(ImageIO.read(new File("./images/monstreglace.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("monstrefeu")) {
//Dessine un rectangle rouge pour représenter un monstre
p2.setColor(Color.RED);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Monstre de feu, Pv restant :" + caseN.getLabelPv(), (this.getWidth() / 2) - 90, (this.getHeight() / 2) - 10);
try{
p2.drawImage(ImageIO.read(new File("./images/monstrefeu.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
2023-05-19 17:13:41 +02:00
}
if (this.caseN.type.equals("or")) {
//Dessine un rectangle jaune pour représenter de l'or
p2.setColor(Color.YELLOW);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Or, Points obtenu :" + caseN.getLabel(), (this.getWidth() / 2) - 50, (this.getHeight() / 2) - 10);
2023-06-23 13:40:21 +02:00
try{
p2.drawImage(ImageIO.read(new File("./images/or.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
2023-05-19 17:13:41 +02:00
}
if (this.caseN.type.equals("hero")) {
//Dessine un rectangle cyan pour représenter le héro
p2.setColor(Color.CYAN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
2023-06-23 13:40:21 +02:00
p2.drawString("Hero, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10);
p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10);
try{
p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("berserker")) {
//Dessine un rectangle cyan pour représenter le héro
p2.setColor(Color.CYAN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Berserker, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10);
p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10);
try{
p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("mage")) {
//Dessine un rectangle cyan pour représenter le héro
p2.setColor(Color.CYAN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Mage, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10);
p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10);
try{
p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("tank")) {
//Dessine un rectangle cyan pour représenter le héro
p2.setColor(Color.CYAN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Tank, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10);
p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10);
try{
p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
2023-05-19 17:13:41 +02:00
}
if (this.caseN.type.equals("potion")) {
//Dessine un rectangle vert pour représenter une potion
p2.setColor(Color.GREEN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Potion, Pv rendu: " + caseN.getLabel(), (this.getWidth() / 2) - 60, (this.getHeight() / 2) - 10);
2023-06-23 13:40:21 +02:00
try{
p2.drawImage(ImageIO.read(new File("./images/potion.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
2023-05-19 17:13:41 +02:00
}
if (this.caseN.type.equals("arme")) {
//Dessine un rectangle bleu pour représenter une arme
p2.setColor(Color.BLUE);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Arme, Atk: " + caseN.getLabel(), (this.getWidth() / 2) - 40, (this.getHeight() / 2) - 10);
2023-06-23 13:40:21 +02:00
try{
p2.drawImage(ImageIO.read(new File("./images/arme.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("armeglace")) {
//Dessine un rectangle bleu pour représenter une arme
p2.setColor(Color.BLUE);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Arme de glace, Atk: " + caseN.getLabel(), (this.getWidth() / 2) - 40, (this.getHeight() / 2) - 10);
try{
p2.drawImage(ImageIO.read(new File("./images/armeglace.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
}
if (this.caseN.type.equals("armefeu")) {
//Dessine un rectangle bleu pour représenter une arme
p2.setColor(Color.BLUE);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Arme de feu, Atk: " + caseN.getLabel(), (this.getWidth() / 2) - 40, (this.getHeight() / 2) - 10);
try{
p2.drawImage(ImageIO.read(new File("./images/armefeu.png")),0 ,0, 50, 50, this);
} catch(IOException e){
System.out.println("Erreur d'ouverture");
}
2023-05-19 17:13:41 +02:00
}
}
public void setCase(Case c) {
this.caseN = c; //Met à jour la référence vers l'objet Case associé à la vue
this.repaint(); //Redessine la vue pour refléter le changement de case
}
}