bool EstEnCollision(BoundingSphere zoneCollTest) { bool estEnCollision = false; foreach (GameComponent c in Game.Components) { if (c is Zombie) { Zombie zombie = c as Zombie; estEnCollision = GestionCollisions.CollisionMonstreMonstre(zoneCollTest, zombie.ZoneCollisionCible) || GestionCollisions.CollisionMonstreMonstre(zoneCollTest, zombie.ZoneCollision); } if (c is CubeColoré) { CubeColoré mur = c as CubeColoré; estEnCollision = GestionCollisions.CollisionMonstreMur(zoneCollTest, mur); } if (estEnCollision) { break; } } return(estEnCollision); }
bool EstEnCollision(object autreObjet, BoundingSphere zoneCollision) { bool estEnCollision = false; if (autreObjet is CubeColoré)// && !estEnCollision) { CubeColoré mur = autreObjet as CubeColoré; estEnCollision = GestionCollisions.CollisionJoueurMur(zoneCollision, mur); } //if (autreObjet is Caméra) //{ // Caméra joueur = autreObjet as Caméra; // GestionCollisions.CollisionJoueurs(this, joueur); //} //if (autreObjet is MONSTRE) //{ //FuturZombie zombie = autreObjet as FuturZombie //GestionCollisions.CollisionJoueurMonstre(this, zombie); //} //if(autreObjet is ObjetTournoyant) //{ // ObjetTournoyant obj = autreObjet as ObjetTournoyant; // if(GestionCollisions.CollisionMonstreMonstre(obj.ZoneCollision, ZoneCollisionPowerUps)) // { // Console.WriteLine("Objet acquis!"); // } //} return(estEnCollision); }
public bool CollisionJoueurMur(Caméra joueur, CubeColoré mur) { bool estEnCollision = false; Vector3 distance = joueur.ZoneCollision.Center - mur.ZoneVerifCollision.Center; float normeDist = distance.Length(); float somme = joueur.ZoneCollision.Radius + mur.ZoneVerifCollision.Radius; if (somme > normeDist) { estEnCollision = joueur.ZoneCollision.Intersects(mur.ZoneCollision); } return estEnCollision; }
public bool CollisionMonstreMur(BoundingSphere zoneCollZombie, CubeColoré mur) { bool estEnCollision = false; Vector3 distance = zoneCollZombie.Center - mur.ZoneCollisionZombie.Center; float normeDist = distance.Length(); float somme = zoneCollZombie.Radius + mur.ZoneCollisionZombie.Radius; if (somme > normeDist) { estEnCollision = zoneCollZombie.Intersects(mur.ZoneCollision); } return(estEnCollision); }
//public bool CollisionJoueurs(Caméra joueurA, Caméra joueurB) //{ // Vector3 distance = joueurA.ZoneCollision.Center - joueurB.ZoneCollision.Center; // float normeDist = distance.Length(); // float somme = joueurA.ZoneCollision.Radius + joueurB.ZoneCollision.Radius; // return somme > normeDist; //} public bool CollisionJoueurMur(BoundingSphere zoneCollision, CubeColoré mur) { bool estEnCollision = false; Vector3 distance = zoneCollision.Center - mur.ZoneVerifCollision.Center; float normeDist = distance.Length(); float somme = zoneCollision.Radius + mur.ZoneVerifCollision.Radius; if (somme > normeDist) { estEnCollision = zoneCollision.Intersects(mur.ZoneCollision); } return(estEnCollision); }