public void Update(float elapsedTime) { if (player != null) { player.Update(elapsedTime); lastPlayerPosition = player.Position; EnemyController.PlayerPosition = player.Position; if (!GameplayScreen.TimeFactors.ContainsKey(Player.UniqueName)) { GameplayScreen.TimeFactors.Add(Player.UniqueName, Player.TimeAdjustment); } else { GameplayScreen.TimeFactors[Player.UniqueName] = Player.TimeAdjustment; } BulletController.AddBullets(Player.BulletsFired); Player.BulletsFired.Clear(); Player.Collide(BulletController.Bullets); Player.Collide(EnemyController.Enemies); if (player.Health <= 0) { if (ParticleController != null) { var center = player.Position; for (int i = 0; i < 30; i++) { double rot = random.NextDouble() * Math.PI * 2.0; var partVel = new Vector2((float)(Math.Cos(rot) * 6.0), (float)(Math.Sin(rot) * 4.0 - 2.0)); ParticleController.Particles.Add(new Particle(center, partVel, Color.Red)); } } GeneratePlayer(3000f); lives--; } } BulletFactory.PlayerPosition = lastPlayerPosition; GameOver = lives <= 0; }
public virtual void Enemy_ShotsFired(object sender, EnemyShootingEventArgs e) { BulletController.AddBullets(e.Bullets); }