diff --git a/src/Boule.java b/src/Boule.java deleted file mode 100644 index d8a542c..0000000 --- a/src/Boule.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Gestion de la boule - * - */ -public class Boule extends Objet { - - /** - * instance de JeuServeur pour la communication - */ - private JeuServeur jeuServeur ; - - /** - * Constructeur - */ - public Boule() { - } - - /** - * Tire d'une boule - */ - public void tireBoule() { - } - -} diff --git a/src/Jeu.java b/src/Jeu.java deleted file mode 100644 index 0ac5c4c..0000000 --- a/src/Jeu.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Informations et méthodes communes aux jeux client et serveur - * - */ -public abstract class Jeu { - - /** - * Réception d'une connexion (pour communiquer avec un ordinateur distant) - */ - public abstract void connexion() ; - - /** - * Réception d'une information provenant de l'ordinateur distant - */ - public abstract void reception() ; - - /** - * Déconnexion de l'ordinateur distant - */ - public abstract void deconnexion() ; - - /** - * Envoi d'une information vers un ordinateur distant - */ - public void envoi() { - } - -} diff --git a/src/JeuClient.java b/src/JeuClient.java deleted file mode 100644 index 143adbc..0000000 --- a/src/JeuClient.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Gestion du jeu côté client - * - */ -public class JeuClient extends Jeu { - - /** - * Controleur - */ - public JeuClient() { - } - - @Override - public void connexion() { - } - - @Override - public void reception() { - } - - /** - * Envoi d'une information vers le serveur - * fais appel une fois à l'envoi dans la classe Jeu - */ - public void envoi() { - } - - public void deconnexion() { - - } - -} diff --git a/src/JeuServeur.java b/src/JeuServeur.java deleted file mode 100644 index 2bb3647..0000000 --- a/src/JeuServeur.java +++ /dev/null @@ -1,49 +0,0 @@ -import java.util.ArrayList; - -/** - * Gestion du jeu côté serveur - * - */ -public class JeuServeur extends Jeu { - - /** - * Collection de murs - */ - private ArrayList lesMurs = new ArrayList() ; - /** - * Collection de joueurs - */ - private ArrayList lesJoueurs = new ArrayList() ; - - /** - * Constructeur - */ - public JeuServeur() { - } - - @Override - public void connexion() { - } - - @Override - public void reception() { - } - - @Override - public void deconnexion() { - } - - /** - * Envoi d'une information vers tous les clients - * fais appel plusieurs fois à l'envoi de la classe Jeu - */ - public void envoi() { - } - - /** - * Génération des murs - */ - public void constructionMurs() { - } - -} diff --git a/src/Joueur.java b/src/Joueur.java deleted file mode 100644 index c1ad0b7..0000000 --- a/src/Joueur.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * Gestion des joueurs - * - */ -public class Joueur extends Objet { - - /** - * vie de départ pour tous les joueurs - */ - private static final int MAXVIE = 10 ; - /** - * gain de points de vie lors d'une attaque - */ - private static final int GAIN = 1 ; - /** - * perte de points de vie lors d'une attaque - */ - private static final int PERTE = 2 ; - - /** - * pseudo saisi - */ - private String pseudo ; - /** - * n° correspondant au personnage (avatar) pour le fichier correspondant - */ - private int numPerso ; - /** - * instance de JeuServeur pour communiquer avec lui - */ - private JeuServeur jeuServeur ; - /** - * numéro d'�tape dans l'animation (de la marche, touché ou mort) - */ - private int etape ; - /** - * la boule du joueur - */ - private Boule boule ; - - private int vie; - - private int orientation; - - /** - * Constructeur - */ - public Joueur() { - } - - /** - * Initialisation d'un joueur (pseudo et numéro, calcul de la 1ère position, affichage, création de la boule) - */ - public void initPerso() { - } - - /** - * Calcul de la première position aléatoire du joueur (sans chevaucher un autre joueur ou un mur) - */ - private void premierePosition() { - } - - /** - * Affiche le personnage et son message - */ - public void affiche() { - } - - /** - * Gère une action reçue et qu'il faut afficher (déplacement, tire de boule...) - */ - public void action() { - } - - /** - * Gère le déplacement du personnage - */ - private void deplace() { - } - - /** - * Contrôle si le joueur touche un des autres joueurs - * @return true si deux joueurs se touchent - */ - private Boolean toucheJoueur() { - return null; - } - - /** - * Gain de points de vie après avoir touché un joueur - */ - public void gainVie() { - } - - /** - * Perte de points de vie après avoir été touché - */ - public void perteVie() { - } - - - private Boolean toucheMur() { - return null; - } - - /** - * vrai si la vie est à 0 - * @return true si vie = 0 - */ - public Boolean estMort() { - return null; - } - - /** - * Le joueur se déconnecte et disparait - */ - public void departJoueur() { - } - -} diff --git a/src/Mur.java b/src/Mur.java deleted file mode 100644 index c11260c..0000000 --- a/src/Mur.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Gestion des murs - * - */ -public class Mur extends Objet { - - /** - * Constructeur - */ - public Mur() { - } - -} diff --git a/src/Objet.java b/src/Objet.java deleted file mode 100644 index e08d185..0000000 --- a/src/Objet.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Informations communes tous les objets (joueurs, murs, boules) - * permet de mmoriser la position de l'objet et de grer les collisions - * - */ -public abstract class Objet { - - /** - * position X de l'objet - */ - protected Integer posX ; - /** - * position Y de l'objet - */ - protected Integer posY ; - - /** - * contrle si l'objet actuel touche l'objet pass en paramtre - * @param objet contient l'objet contrler - * @return true si les 2 objets se touchent - */ - public Boolean toucheObjet (Objet objet) { - return null; - } - -} diff --git a/src/controleur/Controle.java b/src/controleur/Controle.java index bf74def..b4268dc 100644 --- a/src/controleur/Controle.java +++ b/src/controleur/Controle.java @@ -36,10 +36,13 @@ public class Controle implements AsyncResponse { System.out.println("srv"); // new ServeurSocket(this, GLOBAL.PORT); - this.leJeu = new JeuServeur(this); - Arene areneJeu = new Arene(); - areneJeu.setVisible(true); + this.frmArene = new Arene(); + this.frmArene.setVisible(true); + + this.leJeu = new JeuServeur(this); + ((JeuServeur)this.leJeu).constructionMurs(); + frmEntreeJeu.dispose(); }else { System.out.println("ip"); @@ -80,5 +83,13 @@ public class Controle implements AsyncResponse { public void envoi(Connection connection, Object obj) { connection.envoi(obj); } + + public void evenementJeuServeur(String ordre, Object info) { + switch(ordre) { + case "ajout mur": + this.frmArene.ajoutMurs(info); + break; + } + } } diff --git a/src/controleur/GLOBAL.java b/src/controleur/GLOBAL.java index 3fb6aac..0486dbc 100644 --- a/src/controleur/GLOBAL.java +++ b/src/controleur/GLOBAL.java @@ -9,4 +9,9 @@ public interface GLOBAL { String cheminFonds = "fonds/"; String cheminPersos = "personnages/"; + + int tailleXArene = 800; + int tailleYArene = 590; + int largeurMur = 34; + int hauteurMur = 35; } diff --git a/src/modele/JeuServeur.java b/src/modele/JeuServeur.java index 86b826e..0aa5294 100644 --- a/src/modele/JeuServeur.java +++ b/src/modele/JeuServeur.java @@ -62,6 +62,11 @@ public class JeuServeur extends Jeu { * Génération des murs */ public void constructionMurs() { + for(int i = 0; i<20; i++){ + Mur leMur = new Mur(); + lesMurs.add(leMur); + this.controle.evenementJeuServeur("ajout mur", leMur.getJLabel());; + } } } diff --git a/src/modele/Mur.java b/src/modele/Mur.java index 83e3311..bb5925e 100644 --- a/src/modele/Mur.java +++ b/src/modele/Mur.java @@ -1,4 +1,12 @@ package modele; + +import java.net.URL; + +import javax.swing.ImageIcon; +import javax.swing.JLabel; + +import controleur.GLOBAL; + /** * Gestion des murs * @@ -9,6 +17,14 @@ public class Mur extends Objet { * Constructeur */ public Mur() { + posX = (int) Math.round(Math.random() * (GLOBAL.tailleXArene - GLOBAL.largeurMur)) ; + posY = (int) Math.round(Math.random() * (GLOBAL.tailleYArene - GLOBAL.hauteurMur)) ; + + label = new JLabel(); + label.setBounds(posX, posY, GLOBAL.largeurMur, GLOBAL.hauteurMur); + + URL resource = getClass().getClassLoader().getResource("murs/mur.gif"); + label.setIcon(new ImageIcon(resource)); } } diff --git a/src/modele/Objet.java b/src/modele/Objet.java index 9efa6a9..fabd9ae 100644 --- a/src/modele/Objet.java +++ b/src/modele/Objet.java @@ -1,4 +1,7 @@ package modele; + +import javax.swing.JLabel; + /** * Informations communes � tous les objets (joueurs, murs, boules) * permet de m�moriser la position de l'objet et de g�rer les collisions @@ -15,6 +18,8 @@ public abstract class Objet { */ protected Integer posY ; + protected JLabel label; + /** * contr�le si l'objet actuel touche l'objet pass� en param�tre * @param objet contient l'objet � contr�ler @@ -24,4 +29,8 @@ public abstract class Objet { return null; } + public JLabel getJLabel() { + return label; + } + } diff --git a/src/vue/Arene.java b/src/vue/Arene.java index f98bcc1..ff8b100 100644 --- a/src/vue/Arene.java +++ b/src/vue/Arene.java @@ -12,6 +12,7 @@ import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import controleur.GLOBAL; +import modele.Mur; import javax.swing.JLabel; import javax.swing.JTextField; @@ -24,6 +25,7 @@ public class Arene extends JFrame { private static final long serialVersionUID = 1L; private JPanel contentPane; private JTextField textField; + private JPanel jpnMur; /** * Launch the application. @@ -55,6 +57,12 @@ public class Arene extends JFrame { } else { System.out.println("❌ Image non trouvée !"); } + + jpnMur = new JPanel(); + jpnMur.setOpaque(false); + jpnMur.setBounds(0, 0, 800, 590); + contentPane.add(jpnMur); + jpnMur.setLayout(null); @@ -63,16 +71,20 @@ public class Arene extends JFrame { contentPane.add(lblNewLabel); textField = new JTextField(); - textField.setBounds(0, 590, 792, 31); + textField.setBounds(0, 591, 800, 30); contentPane.add(textField); textField.setColumns(10); JScrollPane scrollPane = new JScrollPane(); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - scrollPane.setBounds(0, 620, 792, 98); + scrollPane.setBounds(0, 620, 800, 98); contentPane.add(scrollPane); JTextArea textArea = new JTextArea(); scrollPane.setViewportView(textArea); } + public void ajoutMurs(Object portougal) { + jpnMur.add((JLabel)portougal); + jpnMur.repaint(); + } }