Esempio n. 1
0
 public void CheckAsteroidCollision(SunManager sunManager, Viewport viewport, Asteroid asteroid, ScoreManager scoreManager, PlanetManager planetManager, AudioManager audioManager)
 {
     if (asteroid.type == "RedMeteor")
     {
         bool didAsteroidCollideTheSun = asteroid.GetCircle().Intersects(sunManager.GetFirstObjectCircle());
         if (didAsteroidCollideTheSun)
         {
             ResetAndRandomlyGenerateAsteroid(viewport, asteroid);
             scoreManager.DecreaseSunHealth();
         }
         // Planet collision logic
         bool didAsteroidCollideThePlanets = planetManager.CheckPlanetCollision(asteroid, scoreManager);
         if (didAsteroidCollideThePlanets)
         {
             audioManager.playDecreaseSound();
             ResetAndRandomlyGenerateAsteroid(viewport, asteroid);
         }
     }
     else if (asteroid.type == "BlueMeteor")
     {
         // Do planet collision logic here
         bool didAsteroidCollideThePlanets = planetManager.CheckPlanetCollision(asteroid, scoreManager);
         if (didAsteroidCollideThePlanets)
         {
             audioManager.playIncreaseSound();
             // Remove the asteroid from the screen
             asteroid.sprite.position = new Vector2(3000, 3000);
         }
         //int maxEscapeDistance = (viewport.Width / 2) + 500;
         //float meteorDistance = Vector2.Distance(asteroid.sprite.position, new Vector2(viewport.Width/2, viewport.Height/2));
         //if (meteorDistance > maxEscapeDistance) {
         //    ResetAndRandomlyGenerateAsteroid(viewport, asteroid);
         //}
     }
 }
Esempio n. 2
0
 public void Update(GameTime gameTime, GraphicsDevice graphicsDevice, SunManager sunManager, ScoreManager scoreManager, PlanetManager planetManager, AudioManager audioManager)
 {
     foreach (Asteroid asteroid in asteroidCollection)
     {
         asteroid.Update(gameTime, graphicsDevice, sunManager);
         CheckAsteroidCollision(sunManager, graphicsDevice.Viewport, asteroid, scoreManager, planetManager, audioManager);
         RestartBlueAsteroid(asteroid, gameTime, graphicsDevice.Viewport);
     }
 }