コード例 #1
0
        public Environnement(GameWindow window)
        {
            meteo = Meteo.Beau;

            phaseJournee = PhaseJournee.Jour;
            ambient = 1f;
            heure = 15;
            minute = 50;
            compteur = 0;
            hauteur = window.ClientBounds.Height;
            largeur = window.ClientBounds.Width;
            particularEngine = new ParticularEngine();
        }
コード例 #2
0
        public void Update()
        {
            #region Jour/Nuit
            if (heure >= 20 || heure <= 8)
            {
                phaseJournee = PhaseJournee.Nuit;
            }
            else
            {
                phaseJournee = PhaseJournee.Jour;
            }
            #endregion

            #region GestionHeure
            compteur++;

            if (compteur >= 60)
            {
                if (minute + 1 >= 60)
                {
                    if (heure + 1 >= 24)
                    {
                        heure = 0;
                    }
                    else
                    {
                        heure++;
                    }

                    minute = 0;
                }
                else
                {
                    minute++;
                }
                compteur = 0;
            }
            #endregion

            #region GestionIntensiteNuit
            if (phaseJournee == PhaseJournee.Nuit)
            {
                if (heure <= 4 || heure >= 20)
                {
                    if (compteur == 0)
                        if(ambient > 0.36f)
                            ambient -= 0.01f;
                }
                else
                {
                    if (compteur == 0)
                        if(ambient < 1f)
                        ambient += 0.01f;
                }
            }
            #endregion

            #region Meteo
            if (meteo == Meteo.Beau)
            {
                if (compteurmeteo == 0)
                {
                    duree = new Random().Next(4000, 10000);
                }

                compteurmeteo++;

                if (compteurmeteo >= duree)
                {
                    compteurmeteo = 0;
                    int choix = new Random().Next(1, 3);
                    if (choix == 1)
                    {
                        meteo = Meteo.Beau;
                    }
                    else if (choix == 2)
                    {
                        meteo = Meteo.Pluie;
                        particularEngine.Active_Pluie();
                    }
                    else
                    {

                    }
                }
            }
            else if (meteo == Meteo.Pluie)
            {
                if (compteurmeteo == 0)
                {
                    duree = new Random().Next(4000, 10000);
                }

                compteurmeteo++;
                particularEngine.Update_Rain(hauteur, largeur);

                if (compteurmeteo >= duree)
                {
                    compteurmeteo = 0;
                    int choix = new Random().Next(1, 3);
                    if (choix == 1)
                    {
                        meteo = Meteo.Beau;
                        particularEngine.Desactive_Pluie();
                    }
                    else if (choix == 2)
                    {
                        meteo = Meteo.Pluie;
                    }
                    else
                    {

                    }
                }
            }
            else
            {

            }
            #endregion
        }