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;
import environnement.Coordonnees;
import environnement.HitBox;
import environnement.Physique;
import environnement.PositionCollision;
import static environnement.PositionCollision.*;
import map.Obstacle;
import static jeu.Jeu.getGameCharacter;
import static jeu.Jeu.getObstacleTable;
import java.util.HashMap;
......@@ -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(){
List<Obstacle> listeObstaclesInVoisinage = getObstacleTable();
//stocke l'obstacle avec lequel il y a eu collision
......
......@@ -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
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 >= 50){
if (isAttacking <= 100){
isAttacking++;
}
//sinon on cree l'attaque
else{
//on cree l'attaque
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));
......@@ -120,10 +120,12 @@ public class Monster extends Entity{
if (HitBox.collision(monsterAttack.getHitBox(), getGameCharacter().hitBox)){
//l'attaque fait ses degats
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{
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());
}
......
......@@ -32,7 +32,7 @@ public class Jeu implements Game{
//Coordonees de debut du personnage
static final double zdebut = 700;
static final double zdebut = 1000;
static final double xdebut = 1400;
//perso
......
......@@ -11,22 +11,22 @@ import environnement.Coordonnees;
import environnement.HitBox;
import jeu.Jeu;
import map.Coffre;
import map.LevelManager;
import map.Obstacle;
public class CharacterTest {
Character character;
Obstacle obstacleTest;
Monster monster;
Coffre coffreTest;
static Character character;
static Obstacle obstacleTest;
static Monster monster;
static Coffre coffreTest;
@BeforeClass
public void generateParameters(){
public static void generateParameters(){
character = new Character(new Coordonnees(2,3), 100, 1, 50000);
obstacleTest = new Obstacle(new HitBox(new Coordonnees(10, 30),50,60));
monster = new Monster(new Coordonnees(20, 3), 100, 50, 60, 1, 1);
Jeu.getMonsterList().add(monster);
coffreTest = new Coffre(new HitBox(new Coordonnees(10, 30),50,60));
character.tableCommande.put("CommandX",(double) 1000);
character.tableCommande.put("CommandZ",(double) 1000000);
character.tableCommande.put("CommandAttack", (double) 1);
......@@ -40,8 +40,8 @@ public class CharacterTest {
@Test
public void testCollisionGestion() {
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
......@@ -54,13 +54,13 @@ public class CharacterTest {
}
@Test
/*@Test
public void testKeyGestion() {
assertTrue("il a pas de cle", character.key==0);
character.keyGestion();
assertTrue("il a une cle", character.key==1);
}
}*/
@Test
public void testResetCommand() {
......