public void Update(GameTime gameTime) { var asteroids = _components.GetAllOfType <Asteroid>(); foreach (var asteroid in asteroids) { if (asteroid.Destroyed) { if (asteroid.Size == 5) { _components.Add(new Asteroid(asteroid.Texture, Asteroid.AsteroidSize.Medium, asteroid.Position)); _components.Add(new Asteroid(asteroid.Texture, Asteroid.AsteroidSize.Medium, asteroid.Position)); _components.Add(new Asteroid(asteroid.Texture, Asteroid.AsteroidSize.Medium, asteroid.Position)); } else if (asteroid.Size == 3) { _components.Add(new Asteroid(asteroid.Texture, Asteroid.AsteroidSize.Small, asteroid.Position)); _components.Add(new Asteroid(asteroid.Texture, Asteroid.AsteroidSize.Small, asteroid.Position)); _components.Add(new Asteroid(asteroid.Texture, Asteroid.AsteroidSize.Small, asteroid.Position)); } _components.Remove <Asteroid>(asteroid); } } }
public void Fire() { var fireball = _components.GetSingleOrDefault <Fireball>(); if (fireball == null) { var ship = _components.GetSingle <Ship>(); _components.Add(new Fireball(_gameScreen.Textures["Fireball"], ship.Position, ship.Direction, ship.Rotation)); } else // fireball.Update(gameTime); if (fireball.Destroyed) { _components.Remove <Fireball>(fireball); } }