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); }
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 Entend() { bool entend = false; foreach (GameComponent c in Game.Components) { if (c is Player) { Player joueur = c as Player; entend = GestionCollisions.DétectionJoueur(ZoneOuïe, joueur.ZoneBruit); if (entend) { PositionJoueurAttaqué = joueur.Position; break; } break; } } return(entend); }
public override void Update(GameTime gameTime) { if (PreviousPosition != Position) { AnimationPlayer.Update(gameTime.ElapsedGameTime, true, Matrix.Identity); } else { AnimationPlayer.Update(new TimeSpan(0, 0, 0), true, Matrix.Identity); } PreviousPosition = Position; float TempsÉcoulé = (float)gameTime.ElapsedGameTime.TotalSeconds; CurrentGamePad = GamePad.GetState(PlayerIndex); CurrentMouseState = Mouse.GetState(); if (GestionInput.EstManetteActivée) { GérerManette(TempsÉcoulé); } else if (GestionInput.EstSourisActive || GestionInput.EstClavierActivé) { GérerControlePC(TempsÉcoulé); } else { GestionSons.PauseSoundEffect(NomMarcheLente); GestionSons.PauseSoundEffect(NomMarche); } if (!PeutSauter) { VitesseSaut += TempsÉcoulé * GRAVITY; PositionCamera.Y += VitesseSaut; CaméraJeu.CameraLookAt.Y += VitesseSaut; } if (PositionCamera.Y < PositionInitialeCamera - 1) { VitesseSaut = ASCEND_JUMP_SPEED; Remonte = true; } // je peux surement mettre les deux methode ensemble if (Remonte) { GestionSons.Play(NomLandingSon, false, VOLUME_FAIBLE); VitesseSaut -= (TempsÉcoulé * GRAVITY); PositionCamera.Y += VitesseSaut; CaméraJeu.CameraLookAt.Y += VitesseSaut; if (PositionCamera.Y > PositionInitialeCamera) { float ajusterVue = CaméraJeu.CameraLookAt.Y - PositionCamera.Y; PositionCamera.Y = PositionInitialeCamera; CaméraJeu.CameraLookAt.Y = ajusterVue + PositionCamera.Y; PeutSauter = true; Remonte = false; } } // a voir ZoneCollisionPowerUps = new BoundingSphere(Position, RAYON_COLLISION); ZoneBruit = new BoundingSphere(Position, RAYON_ZONE_BRUIT); foreach (GameComponent c in Game.Components) { if (c is ObjetTournoyant) { ObjetTournoyant o = c as ObjetTournoyant; if (GestionCollisions.CollisionJoueurObjet(o.ZoneCollision, ZoneCollisionPowerUps)) { Game.Components.Remove(c); LampeDePoche.TempsÉcouléeDepuisBatterieTrouvée = 0; break; } } } Frustum = new BoundingFrustum(Matrix.Multiply(View, Projection)); if (IsCurrentPlayer) { PlayerInfo p = new PlayerInfo(Position, Rotation, PreviousPosition, Port, IP); } CalculerMonde(); base.Update(gameTime); }