void Weather() { if (weather == SkyDomeSystem.Weather.Rain && Time == 0) { rain = new Rain(game, camera.Transform.Translation, false, graphicsDevice); rain.density = 0f; } if (weather == SkyDomeSystem.Weather.Rain && rain != null) { rain.density += 0.02f; if (rain.density > 10f) rain.density = 10; } if (weather != SkyDomeSystem.Weather.Rain && rain != null) { rain.density -= 0.02f; if (rain.density < 0f) rain.density = 0; if (Time == 1) rain = null; } Time += 0.001f; if (Time >= TIME) { sky.prevWeather = weather; Time = 0; random = new Random(); TIME = random.Next(6, 10); if (sky.prevWeather == SkyDomeSystem.Weather.Rain) weather = SkyDomeSystem.Weather.MoreClouds; else if (sky.prevWeather == SkyDomeSystem.Weather.Clear) weather = SkyDomeSystem.Weather.SomeClouds; else if (sky.prevWeather == SkyDomeSystem.Weather.Clouds) { rndW = new Random(); int Ch = rndW.Next(1, 3); if (Ch == 1) weather = SkyDomeSystem.Weather.MoreClouds; else if (Ch == 2) weather = SkyDomeSystem.Weather.SomeClouds; } } sky.WeatherChange(ref weather); /* Console.WriteLine("Time=" + Time); Console.WriteLine("TIME =" + TIME); Console.WriteLine("Weather = " + weather); Console.WriteLine("PrevWeather = " + sky.prevWeather);*/ }
public void Update(GameTime gameTime) { oldKeyState = keyState; keyState = Keyboard.GetState(); if (rain != null) rain.Update(camera); if ((keyState.IsKeyDown(Keys.D0) && !previousKeyState.IsKeyDown(Keys.D0))) { rain = new Rain(game, camera.Transform.Translation, true, graphicsDevice); } if ((keyState.IsKeyDown(Keys.D9) && !previousKeyState.IsKeyDown(Keys.D9))) { rain = new Rain(game, camera.Transform.Translation, false, graphicsDevice); } if ((keyState.IsKeyDown(Keys.D8) && !previousKeyState.IsKeyDown(Keys.D8))) { rain = null; } if (!LowSky) { Theta = sky.Theta; Gr = sky.Gr; SKY(gameTime); } sunColor = new Color(sky.SunColor); }