Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider c9d76296 rédigé par Bryan BARBE's avatar Bryan BARBE
Parcourir les fichiers

Commentaire en plus javadoc

parent d37451d1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -44,7 +44,10 @@ public class Bomb{
if (bombs.size() > 0){
for (int h = 0; h <= bombs.size(); h++){
// Supprime la bombe actuelle et diminue la limite de bombes du joueur
/*
* Test d'existance de la bombe + supprime la bombe actuelle et diminue le nombre de bombe
* actuellement placé par le joueur.
*/
if( bombs.get(h).getX() == x &&
bombs.get(h).getY() == y){
g.deleteBomb(h);
......@@ -56,6 +59,7 @@ public class Bomb{
// Boucle pour générer des flammes dans les quatre directions
for(int i = 1; i <= 4; i++){
switch (i) {
// Vers la droite
case 1:
loop1:
for (j = 1 ; j <= firePower ; j++){
......@@ -78,7 +82,9 @@ public class Bomb{
}
}
// Destruction d'un bloc si c'est un bloc à une vie ou incassable
// Destruction d'un bloc si c'est un bloc à une vie ou incassable, le destructblock()
// du block incassable n'a aucun effet
// + cassage de la loop actuelle
if (g.getGrid()[x + j ][y] instanceof OneLifeBlock ||
g.getGrid()[x + j ][y] instanceof ImbreakableBlock) {
g.destructBlock(x + j, y);
......@@ -87,6 +93,7 @@ public class Bomb{
}
break;
case 2:
// Vers le bas
loop2:
for (j = 1 ; j <= firePower ; j++){
if (y + j >= g.getnbY()){
......@@ -108,7 +115,9 @@ public class Bomb{
}
}
// Destruction d'un bloc si c'est un bloc à une vie ou incassable
// Destruction d'un bloc si c'est un bloc à une vie ou incassable, le destructblock()
// du block incassable n'a aucun effet
// + cassage de la loop actuelle
if (g.getGrid()[x][y + j] instanceof OneLifeBlock ||
g.getGrid()[x][y + j] instanceof ImbreakableBlock) {
g.destructBlock(x, y + j);
......@@ -117,6 +126,7 @@ public class Bomb{
}
break;
case 3:
// Vers la gauche
loop3:
for (j = 1 ; j <= firePower ; j++){
if (x - j < 0){
......@@ -140,7 +150,9 @@ public class Bomb{
}
// Destruction d'un bloc si c'est un bloc à une vie ou incassable
// Destruction d'un bloc si c'est un bloc à une vie ou incassable, le destructblock()
// du block incassable n'a aucun effet
// + cassage de la loop actuelle
if (g.getGrid()[x - j][y] instanceof OneLifeBlock ||
g.getGrid()[x - j][y] instanceof ImbreakableBlock) {
g.destructBlock(x - j, y);
......@@ -149,6 +161,7 @@ public class Bomb{
}
break;
case 4:
// Vers le haut
loop4:
for (j = 1 ; j <= firePower ; j++){
if (y - j < 0){
......@@ -170,7 +183,9 @@ public class Bomb{
}
}
// Destruction d'un bloc si c'est un bloc à une vie ou incassable
// Destruction d'un bloc si c'est un bloc à une vie ou incassable, le destructblock()
// du block incassable n'a aucun effet
// + cassage de la loop actuelle
if (g.getGrid()[x][y - j] instanceof OneLifeBlock ||
g.getGrid()[x][y - j] instanceof ImbreakableBlock ) {
g.destructBlock(x, y - j);
......
package App.Display;
/**
* Interface d'affichage
*/
public interface Display {
/**
* Procédure qui lance l'affichage de l'objet
*/
public abstract void draw();
}
\ No newline at end of file
......@@ -15,8 +15,6 @@ public class GroundDisplay implements Display {
private Ground ground; // Terrain à afficher
private int blocksize; // Taille des blocs du jeu
private Image oneLifeBlockImage, imbreakableBlockImage, grassImage; //Image représentant les différents blocs
/**
* Constructeur de la classe GroundDisplay.
......@@ -39,8 +37,6 @@ public class GroundDisplay implements Display {
}
/**
* Méthode pour dessiner les blocs du terrain dans l'interface graphique.
*/
......@@ -57,13 +53,8 @@ public class GroundDisplay implements Display {
// Dessine un bloc indestructible avec l'image ImbreakableBlock.png
if (grid[i][j].getLife() == -1){
l_g[i][j].drawImage(imbreakableBlockImage, i * blocksize, j * blocksize, blocksize, blocksize, null);
/*
* Code pour afficher un carré gris foncé à la place
* l_g[i][j].setColor(Color.gray);
l_g[i][j].fillRect(i * blocksize, j * blocksize, blocksize, blocksize);
*/
}
// Dessine un bloc avec une vie de 1 avec l'image OnelifeBlock.png
if (grid[i][j].getLife() == 1){
l_g[i][j].drawImage(oneLifeBlockImage, i * blocksize, j * blocksize, blocksize, blocksize, null);
......
......@@ -2,7 +2,9 @@ package App.Display;
import java.awt.Font;
import java.awt.Color;
import java.awt.Graphics;
/*
* Objet permettant d'afficher du texte sur la fenêtre
*/
public class TextDisplay implements Display{
private String text;
private int size;
......@@ -11,6 +13,16 @@ public class TextDisplay implements Display{
private Graphics g;
private Color c;
/**
* Constructeur de TextDisplay
* @param text Contenu du texte
* @param size Taille de la police d'écriture
* @param c Couleur du texte (utiliser objet Color)
* @param x Coordonnée x
* @param y Coordonnée y
* @param g Objet Graphics, utilisé pour l'affichage
*/
public TextDisplay(String text, int size, Color c, int x, int y, Graphics g){
this.text = text;
this.size = size;
......@@ -20,6 +32,9 @@ public class TextDisplay implements Display{
this.c = c;
}
/**
* Procédure qui lance l'affichage du texte
*/
public void draw(){
g.setFont(new Font("TimesRoman", Font.PLAIN, size));
g.setColor(c);
......
......@@ -388,6 +388,12 @@ public class Ground {
}.start();
}
/**
* Transforme le joueur à l'indice i dans la liste de joueur en GhostPlayer, qui caractérise
* un joueur mort. Il apparait blanc et ne peut plus poser de bombe.
* @param i Indice du joueur dans la liste de joueurs
*/
public void killPlayer(int i){
if (!(players.get(i) instanceof GhostPlayer)){
int x = players.get(i).getX();
......
......@@ -2,8 +2,14 @@ package App.Item;
import App.Player.Player;
// La classe Bag hérite de la classe abstraite Item
public class Bag extends Item {
/**
* Méthode pour ajouter l'effet du "Bag" au joueur.
* Augmente la limite de bombe par joueur.
* @param p Le joueur auquel appliquer l'effet.
*/
@Override
public void addEffectTo(Player p){
p.addBombLimit();
......
package App.Item;
import App.Player.Player;
// La classe Boot hérite de la classe abstraite Item
// Cette classe n'est actuellement pas implémenté dans le jeu
// La classe Shield hérite de la classe abstraite Item
public class Shield extends Item {
/**
......@@ -26,6 +26,5 @@ public class Shield extends Item {
p.setLife(1);
}
}.start();
}
}
......@@ -2,13 +2,28 @@ package App.Player;
import App.Ground;
import App.Bomb.Bomb;
/*
* Classe hérité de Player, caractérisant un joueur mort, il aura perdu la partie et ne
* peut plus poser de bombe
*/
public class GhostPlayer extends Player {
public GhostPlayer(int xx, int yy, String name) {
super(xx, yy, name);
/**
* Constructeur de GhostPlayer
* @param x Position en x du joueur.
* @param y Position en y du joueur.
* @param name Nom du joueur.
*/
public GhostPlayer(int x, int y, String name) {
super(x, y, name);
}
/**
* Place une bombe sur la grille à la position actuelle du joueur.
*
* @param ground Objet Ground représentant la grille de jeu.
* @return Objet Bomb représentant la nouvelle bombe placée. (ici pas de bombe)
*/
@Override
public Bomb placeBomb(Ground ground){
return null;
......
......@@ -21,13 +21,13 @@ public class Player {
/**
* Constructeur de la classe Player.
*
* @param xx Position en x du joueur.
* @param yy Position en y du joueur.
* @param x Position en x du joueur.
* @param y Position en y du joueur.
* @param name Nom du joueur.
*/
public Player(int xx, int yy, String name){
this.x = xx;
this.y = yy;
public Player(int x, int y, String name){
this.x = x;
this.y = y;
this.speed = 4;
this.firePower=1;
this.life = 1;
......
......@@ -5,17 +5,29 @@ import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
/*
* La classe SoundFile est une classe permettant de charger et manipuler un son (le lancer, le stopper)
*/
public class SoundFile {
private String path;
private boolean wasPlayed;
private boolean isPlaying;
private Clip clip;
private String path; //chemin d'accès du fichier .wav
private boolean wasPlayed; //booléen exprimant si le son a été joué
private boolean isPlaying; //booléen exprimant si le son est en train d'être joué
private Clip clip; //objet importé de la bibliothèque javax.sound, stockant le son
/**
* Constructeur de SoundFile
* @param path Chemin d'accès du fichier .wav
*/
public SoundFile(String path){
this.path = path;
this.wasPlayed = false;
this.isPlaying = false;
}
/*
* Procédure permettant de lancer le son stocké dans le clip.
*/
public void readSound() {
try {
if(!wasPlayed){
......@@ -48,10 +60,16 @@ public class SoundFile {
}
}
/*
* Procédure permettant de recharger le son, sinon le son ne peut pas être joué dans readSound()
*/
public void reload(){
this.wasPlayed = false;
}
/*
* Procédure permettant de stopper la lecture du son
*/
public void stop(){
if(isPlaying){
this.clip.stop();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter