public override void Update(GameTime gameTime) { _spaceship.Update(gameTime); _asteroidSpawner.Update(gameTime); _asteroids.ForEach(a => a?.Update(gameTime)); _bullets.ForEach(b => b?.Update(gameTime)); foreach (var a in _asteroids) { if (a._boundingBox.Intersects(_spaceship._boundingBox)) { _spaceship.Hit(); } } foreach (var bullet in _bullets) { foreach (var asteroid in _asteroids) { if (bullet._boundingBox.Intersects(asteroid._boundingBox)) { asteroid.Hit(); _deletBulletList.Add(bullet); } } } if (Keyboard.GetState().IsKeyDown(Keys.Space) && !_shootPressed) { _shootPressed = true; Bullet bul = new Bullet(_spaceship._position, _spaceship.Angle); bul.destroy += bullet => _deletBulletList.Add(bullet); bul.Start(); _bullets.Add(bul); } if (Keyboard.GetState().IsKeyUp(Keys.Space)) { _shootPressed = false; } foreach (var ass in _deletAsteroidList) { _asteroids.Remove(ass); _score += 10; } _deletAsteroidList.Clear(); foreach (var bull in _deletBulletList) { _bullets.Remove(bull); } _deletAsteroidList.Clear(); base.Update(gameTime); }