Nantes Université

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

Merge branch 'main' of gitlab.univ-nantes.fr:E172590Y/poo.23.24.7

parents 6c6df345 74f884a4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -82,23 +82,29 @@ public class GamePanel extends JPanel implements Runnable{
}
public void update(){
int dx = 0;//Changement en x
int dy = 0;//Changement en y
//On enregistre les changements en x et y
if(keyH.upPressed == true && !game.collisionTestBLock(game.getPlayerFromList(0),0 ,-game.getPlayerFromList(0).getSpeed())){
game.addYPlayers(0, -game.getPlayerFromList(0).getSpeed());
dy = -game.getPlayerFromList(0).getSpeed();
}
if(keyH.downPressed == true && !game.collisionTestBLock(game.getPlayerFromList(0),0 ,game.getPlayerFromList(0).getSpeed())){
game.addYPlayers(0, game.getPlayerFromList(0).getSpeed());
dy = game.getPlayerFromList(0).getSpeed();
}
if(keyH.rightPressed == true && !game.collisionTestBLock(game.getPlayerFromList(0),game.getPlayerFromList(0).getSpeed() ,0 )){
game.addXPlayers(0, game.getPlayerFromList(0).getSpeed());
dx =game.getPlayerFromList(0).getSpeed();
}
if(keyH.leftPressed == true && !game.collisionTestBLock(game.getPlayerFromList(0),-game.getPlayerFromList(0).getSpeed() ,0 )){
game.addXPlayers(0, -game.getPlayerFromList(0).getSpeed());
dx =-game.getPlayerFromList(0).getSpeed();
}
//System.out.println(game.getPlayerFromList(0).getGridX() + " " + game.getPlayerFromList(0).getGridY());
//On ajoute les changements
game.addXPlayers(0, dx);
game.addYPlayers(0, dy);
//
if(keyH.enterPressed == true && game.getPlayerFromList(0).getBombPlaced() < game.getPlayerFromList(0).getBombLimit()){
......
......@@ -11,9 +11,12 @@ public class Ground {
private ArrayList<Player> players;
private Item[][] gridItem;
//Constructeur de la classe Ground
public Ground(int nbx, int nby){
//Initialisation des variables membres avec les valeurs passées en paramètres
this.nbx = nbx;
this.nby = nby;
//Initialisation des listes et matrices
this.grid = new Block[nbx][nby];
players = new ArrayList<Player>();
players.add(new Player(75,75, "player1"));
......@@ -22,10 +25,13 @@ public class Ground {
this.gridItem = new Item[nbx][nby];
}
// Méthode pour initialiser un nouveau terrain
public void newGround(){
// Parcours de la matrice de blocs pour définir les types de blocs
for (int j = 0; j < nby; j++){
for(int i = 0; i < nbx; i++){
// Condition pour définir le type de bloc en fonction de la position
// sur le terrain (bordure extérieure, terrain intérieur, bloc cassable, vide)
if( i == 0 || i == nbx - 1 || j == 0 || j == nby - 1){
//Frontière exterieur
grid[i][j] = new ImbreakableBlock();
......@@ -53,6 +59,7 @@ public class Ground {
}
}
// Méthode pour tester la collision d'un joueur avec un bloc
public boolean collisionTestBLock(Player p, int dx, int dy){
int boxsizeplayer = 34;
int pX = p.getX();
......@@ -91,46 +98,57 @@ public class Ground {
return false;
}
//Teste si un item est touché par un joueur alors l'effet de l'item est affecté au joueur
public void testItemCollision(){
// Parcours de la liste des joueurs
for (int k=0; k<= players.size(); k++){
int i = players.get(k).getGridX();
int j = players.get(k).getGridY();
// Vérification si un item est présent à la position du joueur
if (gridItem[i][j] != null){
// Application de l'effet de l'item au joueur et suppression de l'item
gridItem[i][j].addEffectTo(players.get(k));
gridItem[i][j] = null;
}
}
}
//Retourne le nombre de colonne de la grille
public int getnbX(){
return nbx;
}
//Retourne le nombre de ligne de la grille
public int getnbY(){
return nby;
}
//Retourne la grille de bloc
public Block[][] getGrid(){
return grid;
}
//Retourne la grille d'item
public Item[][] getGridItem(){
return gridItem;
}
//Retourne le player à l'indice k dans la liste de joueurs
public Player getPlayerFromList(int k){
return players.get(k);
}
//Ajoute un entier dx à la position en x du jouer à la position k dans la liste de player
public void addXPlayers(int k, int dx){
players.get(k).addX(dx);
}
//Ajoute un entier dy à la position en y du jouer à la position k dans la liste de player
public void addYPlayers(int k, int dy){
players.get(k).addY(dy);
}
//Ajoute un item dans la grille d'item
public void addItem(Item it, int i, int j){
if (it instanceof Boot) {
gridItem[i][j] = new Boot();
......@@ -140,8 +158,27 @@ public class Ground {
}
}
//Ajoute une bombe dans la liste de bombes
public void addBomb(Player p){
System.out.println("bomb");
bombs.add(p.placeBomb(this));
//Vérifie si il y a déja une bombe dans l'emplacement
boolean test = true;
for (i=0;i<=bombs.size();i++){
if (bombs[i].x==p.getGridX&&bombs[i].y==p.getGridY){
test=false;
}
}
//Si pas de bombe dans l'emplacement ajoute une bombe
if (test){
bombs.add(p.placeBomb());
System.out.println("Bomb has been planted");
}
}
//Détruis un bloc de la liste de bloc de ground
public void destructBlock(int i, int j){
if(i <this.nbx ; j < this.nby){
grid[i][j] = new VoidBlock();
}
}
}
package App;
import App.Bomb.*;
public class Player {
private int x;
private int y;
......@@ -93,4 +94,17 @@ public class Player {
public void decreseadBomb(){
bombPlaced--;
}
public void getDamage(int damage){
if (life - damage <= 0){
life=0;
}
else {
life-=damage;
}
}
public boolean isDead(){
return (life==0);
}
}
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