示例#1
0
        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);
        }
示例#4
0
        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);
        }