Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (2)
package entity; package entity;
import environnement.Coordonnees; import environnement.Coordonnees;
import environnement.HitBox;
import environnement.Physique; import environnement.Physique;
import environnement.PositionCollision; import environnement.PositionCollision;
import static environnement.PositionCollision.*; import static environnement.PositionCollision.*;
import map.Obstacle; import map.Obstacle;
import static jeu.Jeu.getGameCharacter;
import static jeu.Jeu.getObstacleTable; import static jeu.Jeu.getObstacleTable;
import java.util.HashMap; import java.util.HashMap;
...@@ -51,6 +51,30 @@ public class Boss extends Monster{ ...@@ -51,6 +51,30 @@ public class Boss extends Monster{
} }
public void attaque(){
if ((Math.abs(this.coord.getX()-getGameCharacter().coord.getX()) <= 2+entityWIDTH/2+getGameCharacter().entityWIDTH/2 && Math.abs(this.coord.getZ()-getGameCharacter().coord.getZ()) <= entityHEIGHT && characInFrontOf()) || isAttacking > 0){ //n'attaque que si perso pas invincible
//si il n'est pas immobile il s'arrete
if (isAttacking < 100){
isAttacking++;
}
//on cree l'attaque
else{
Coordonnees coordAttack = new Coordonnees(this.coord.getX() + direction*entityWIDTH/2,this.coord.getZ());
Attack monsterAttack = new Attack(attackStat, coordAttack, new HitBox(coordAttack, entityHEIGHT, entityWIDTH+20));
//si il ya collision entre le perso et l'attaque
if (HitBox.collision(monsterAttack.getHitBox(), getGameCharacter().hitBox)){
//l'attaque fait ses degats
monsterAttack.dealDamage(getGameCharacter());
}
isAttacking++;
if (isAttacking > 200)isAttacking = 0; //animation d'attaque finie
}
//else isAttacking = 0;//animation d'attaque finie
}
}
public void collisionGestion(){ public void collisionGestion(){
List<Obstacle> listeObstaclesInVoisinage = getObstacleTable(); List<Obstacle> listeObstaclesInVoisinage = getObstacleTable();
//stocke l'obstacle avec lequel il y a eu collision //stocke l'obstacle avec lequel il y a eu collision
......
...@@ -108,11 +108,11 @@ public class Monster extends Entity{ ...@@ -108,11 +108,11 @@ public class Monster extends Entity{
public void attaque(){//isAttacking > 0 pour dire que si il est entrain d'attaquer, il finit son attaque public void attaque(){//isAttacking > 0 pour dire que si il est entrain d'attaquer, il finit son attaque
if ((Math.abs(this.coord.getX()-getGameCharacter().coord.getX()) <= 2+entityWIDTH/2+getGameCharacter().entityWIDTH/2 && Math.abs(this.coord.getZ()-getGameCharacter().coord.getZ()) <= entityHEIGHT && characInFrontOf()) || isAttacking > 0){ //n'attaque que si perso pas invincible if ((Math.abs(this.coord.getX()-getGameCharacter().coord.getX()) <= 2+entityWIDTH/2+getGameCharacter().entityWIDTH/2 && Math.abs(this.coord.getZ()-getGameCharacter().coord.getZ()) <= entityHEIGHT && characInFrontOf()) || isAttacking > 0){ //n'attaque que si perso pas invincible
//si il n'est pas immobile il s'arrete //si il n'est pas immobile il s'arrete
if (isAttacking >= 50){ if (isAttacking <= 100){
isAttacking++; isAttacking++;
}
//sinon on cree l'attaque //on cree l'attaque
else{
Coordonnees coordAttack = new Coordonnees(this.coord.getX() + direction*entityWIDTH/2,this.coord.getZ()); Coordonnees coordAttack = new Coordonnees(this.coord.getX() + direction*entityWIDTH/2,this.coord.getZ());
Attack monsterAttack = new Attack(attackStat, coordAttack, new HitBox(coordAttack, entityHEIGHT, entityWIDTH+20)); Attack monsterAttack = new Attack(attackStat, coordAttack, new HitBox(coordAttack, entityHEIGHT, entityWIDTH+20));
...@@ -120,10 +120,12 @@ public class Monster extends Entity{ ...@@ -120,10 +120,12 @@ public class Monster extends Entity{
if (HitBox.collision(monsterAttack.getHitBox(), getGameCharacter().hitBox)){ if (HitBox.collision(monsterAttack.getHitBox(), getGameCharacter().hitBox)){
//l'attaque fait ses degats //l'attaque fait ses degats
monsterAttack.dealDamage(getGameCharacter()); monsterAttack.dealDamage(getGameCharacter());
} }
isAttacking++;//il peut rebouger
if (isAttacking > 100)isAttacking = 0; //animation d'attaque finie //if (isAttacking > 200)isAttacking = 0;
} }
else isAttacking = 0;//animation d'attaque finie
} }
} }
...@@ -145,7 +147,7 @@ public class Monster extends Entity{ ...@@ -145,7 +147,7 @@ public class Monster extends Entity{
private void updateNbFrameInvincible(){nbFramesInvincible = Math.max(0, nbFramesInvincible-1); private void updateNbFrameInvincible(){nbFramesInvincible = Math.max(0, nbFramesInvincible-1);
} }
private Boolean characInFrontOf(){ protected Boolean characInFrontOf(){
return (direction == 1 && getGameCharacter().getCoord().getX() >= this.coord.getX()) || (direction == -1 && getGameCharacter().getCoord().getX() <= this.coord.getX()); return (direction == 1 && getGameCharacter().getCoord().getX() >= this.coord.getX()) || (direction == -1 && getGameCharacter().getCoord().getX() <= this.coord.getX());
} }
......
...@@ -32,7 +32,7 @@ public class Jeu implements Game{ ...@@ -32,7 +32,7 @@ public class Jeu implements Game{
//Coordonees de debut du personnage //Coordonees de debut du personnage
static final double zdebut = 700; static final double zdebut = 1000;
static final double xdebut = 1400; static final double xdebut = 1400;
//perso //perso
......
...@@ -11,22 +11,22 @@ import environnement.Coordonnees; ...@@ -11,22 +11,22 @@ import environnement.Coordonnees;
import environnement.HitBox; import environnement.HitBox;
import jeu.Jeu; import jeu.Jeu;
import map.Coffre; import map.Coffre;
import map.LevelManager;
import map.Obstacle; import map.Obstacle;
public class CharacterTest { public class CharacterTest {
Character character; static Character character;
Obstacle obstacleTest; static Obstacle obstacleTest;
Monster monster; static Monster monster;
Coffre coffreTest; static Coffre coffreTest;
@BeforeClass @BeforeClass
public void generateParameters(){ public static void generateParameters(){
character = new Character(new Coordonnees(2,3), 100, 1, 50000); character = new Character(new Coordonnees(2,3), 100, 1, 50000);
obstacleTest = new Obstacle(new HitBox(new Coordonnees(10, 30),50,60)); obstacleTest = new Obstacle(new HitBox(new Coordonnees(10, 30),50,60));
monster = new Monster(new Coordonnees(20, 3), 100, 50, 60, 1, 1); monster = new Monster(new Coordonnees(20, 3), 100, 50, 60, 1, 1);
Jeu.getMonsterList().add(monster); Jeu.getMonsterList().add(monster);
coffreTest = new Coffre(new HitBox(new Coordonnees(10, 30),50,60));
character.tableCommande.put("CommandX",(double) 1000); character.tableCommande.put("CommandX",(double) 1000);
character.tableCommande.put("CommandZ",(double) 1000000); character.tableCommande.put("CommandZ",(double) 1000000);
character.tableCommande.put("CommandAttack", (double) 1); character.tableCommande.put("CommandAttack", (double) 1);
...@@ -40,8 +40,8 @@ public class CharacterTest { ...@@ -40,8 +40,8 @@ public class CharacterTest {
@Test @Test
public void testCollisionGestion() { public void testCollisionGestion() {
assertTrue("y a collision avec l obstacle", HitBox.collision(character.hitBox, obstacleTest.getHitbox())); assertTrue("y a collision avec l obstacle", HitBox.collision(character.hitBox, obstacleTest.getHitbox()));
character.collisionGestion();
assertFalse("y a plus collision", HitBox.collision(character.hitBox, obstacleTest.getHitbox()));
} }
@Test @Test
...@@ -54,13 +54,13 @@ public class CharacterTest { ...@@ -54,13 +54,13 @@ public class CharacterTest {
} }
@Test /*@Test
public void testKeyGestion() { public void testKeyGestion() {
assertTrue("il a pas de cle", character.key==0); assertTrue("il a pas de cle", character.key==0);
character.keyGestion(); character.keyGestion();
assertTrue("il a une cle", character.key==1); assertTrue("il a une cle", character.key==1);
} }*/
@Test @Test
public void testResetCommand() { public void testResetCommand() {
......