From 4a94b8ac85d758e4a2301592eac51622fb7fe1e9 Mon Sep 17 00:00:00 2001 From: Louis MALTERRE <malterre.louis@laposte.net> Date: Tue, 6 Dec 2022 10:26:18 +0100 Subject: [PATCH] debut implementation attaque LM --- MAVENProject/src/main/java/entity/Attack.java | 21 +++++++++++++++ MAVENProject/src/main/java/entity/Entity.java | 26 +++++++++---------- .../src/main/java/entity/Monster.java | 11 ++++---- MAVENProject/src/main/java/jeu/Jeu.java | 1 + 4 files changed, 41 insertions(+), 18 deletions(-) create mode 100644 MAVENProject/src/main/java/entity/Attack.java diff --git a/MAVENProject/src/main/java/entity/Attack.java b/MAVENProject/src/main/java/entity/Attack.java new file mode 100644 index 0000000..ae31bdd --- /dev/null +++ b/MAVENProject/src/main/java/entity/Attack.java @@ -0,0 +1,21 @@ +package entity; + +import environnement.Coordonnees; +import environnement.HitBox; + +public class Attack { + + int damage; + Coordonnees coordCentre; + HitBox hitBox; + + public Attack(int dmg,Coordonnees c,HitBox hb){ + damage = dmg; + coordCentre = c; + hitBox = hb; + } + + public void dealDamage(Entity entity){ + entity.setNbLifePoints(Math.max(entity.getNbLifePoints()-damage, 0)); + } +} diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java index 1a14d61..73d24c0 100644 --- a/MAVENProject/src/main/java/entity/Entity.java +++ b/MAVENProject/src/main/java/entity/Entity.java @@ -13,19 +13,19 @@ import map.Obstacle; public abstract class Entity { - protected Coordonnees coord; - protected Coordonnees oldCoord; - protected final double vitesseMax; - protected HitBox hitBox; - protected int attackStat; // nb de pv enleves par attaque - protected int maxLifePoints = 3; - protected int nbLifePoints = maxLifePoints; - protected final double entityWIDTH; - protected final double entityHEIGHT; - protected int alpha = 1; // gere les collisions avec le sol - protected HitBox voisinage; - protected int direction = 1; // direction selon l'axe des x, -1 pour la gauche et 1 pour la droite - protected List<PositionCollision> obstacleTableCollision = new ArrayList<>(); + Coordonnees coord; + Coordonnees oldCoord; + final double vitesseMax; + HitBox hitBox; + int attackStat; // nb de pv enleves par attaque + int maxLifePoints = 3; + int nbLifePoints = maxLifePoints; + final double entityWIDTH; + final double entityHEIGHT; + int alpha = 1; // gere les collisions avec le sol + HitBox voisinage; + int direction = 1; // direction selon l'axe des x, -1 pour la gauche et 1 pour la droite + List<PositionCollision> obstacleTableCollision = new ArrayList<>(); public Entity(Coordonnees c,double vitesseMax,double width,double height,int atkStt){ diff --git a/MAVENProject/src/main/java/entity/Monster.java b/MAVENProject/src/main/java/entity/Monster.java index cfbaa0d..8887c1b 100644 --- a/MAVENProject/src/main/java/entity/Monster.java +++ b/MAVENProject/src/main/java/entity/Monster.java @@ -9,7 +9,6 @@ import jeu.Jeu; import map.Obstacle; import static jeu.Jeu.getGameCharacter; -import static jeu.Jeu.getObstacleTable; import java.util.ArrayList; import java.util.HashMap; @@ -18,7 +17,8 @@ import java.util.List; public class Monster extends Entity{ - double vitesseActuZ = 0; + private double vitesseActuZ = 0; + private Obstacle obstacleBeneath = Jeu.getSol(); //obstacle en dessous public Monster(Coordonnees c, double vitesseMax,double width,double height,int atkStt,int nbLP) { super(c, vitesseMax,width,height,atkStt); @@ -33,8 +33,8 @@ public class Monster extends Entity{ oldCoord = coord; //temporaire, pour faire un deplacement cyclique - if (coord.getX() < 0)direction = 1; - else if (coord.getX() >= 1000)direction = -1; + if (coord.getX() < 0 || coord.getX() <= obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getX())direction = 1; + else if (coord.getX() >= 1000 || coord.getX() >= obstacleBeneath.getHitbox().getExtremites().get("HautDroite").getX())direction = -1; //****************** double newX = coord.getX()+direction*vitesseMax*delta; @@ -64,6 +64,7 @@ public class Monster extends Entity{ this.vitesseActuZ = 0; this.setCoord(new Coordonnees(this.getCoord().getX(), listeObstaclesInVoisinage.get(i).getHitbox().getExtremites().get("HautGauche").getZ()-entityHEIGHT/2)); alpha = 1; + obstacleBeneath = listeObstaclesInVoisinage.get(i); break; } } @@ -124,7 +125,7 @@ public class Monster extends Entity{ } public void updateVoisinage(){ - voisinage = new HitBox(coord, 600, 600); + voisinage = new HitBox(coord, 1000, 1000); } public Boolean death(){ diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index fca7b67..0cbeb33 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -103,6 +103,7 @@ public class Jeu implements Game{ monsterList.add(new Monster(new Coordonnees(1000, sol.getHitbox().getExtremites().get("HautGauche").getZ()-500), 1000, 30, 60, 1,10)); monsterList.add(new Monster(new Coordonnees(500, sol.getHitbox().getExtremites().get("HautGauche").getZ()-500), 1000, 30, 60, 1,10)); monsterList.add(new Monster(new Coordonnees(100, sol.getHitbox().getExtremites().get("HautGauche").getZ()-500), 1000, 30, 60, 1,10)); + monsterList.add(new Monster(new Coordonnees(300, sol.getHitbox().getExtremites().get("HautGauche").getZ()-500), 1000, 30, 60, 1,10)); //on charge le perso (a la fin du constructeur, cest important par rapport a obstacleTable, sinon y'a des pbs de "causalite") gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(300, 300), 2000, 1,600000)); -- GitLab