static void HandleCollisions() { // handle collisions between enemies for (int i = 0; i < enemies.Count; i++) { for (int j = i + 1; j < enemies.Count; j++) { if (IsColliding(enemies[i], enemies[j])) { enemies[i].HandleCollision(enemies[j]); enemies[j].HandleCollision(enemies[i]); } } } // handle collisions between bullets and enemies for (int i = 0; i < enemies.Count; i++) { for (int j = 0; j < bullets.Count; j++) { if (IsColliding(enemies[i], bullets[j])) { enemies[i].health = enemies[i].health - 1; if (enemies[i].health <= 0) { enemies[i].WasShot(); } bullets[j].IsExpired = true; } } } // handle collisions between the player and enemies for (int i = 0; i < enemies.Count; i++) { if (enemies[i].IsActive && IsColliding(PlayerShip.Instance, enemies[i])) { PlayerShip.Instance.Kill(); enemies.ForEach(x => x.WasShot()); EnemySpawner.Reset(); EnemySpawner.bossSpawn = false; break; } } }
protected override void Update(GameTime gameTime) { GameTime = gameTime; Input.Update(); Camera.Update(); // Allows the game to exit if (Input.WasButtonPressed(Buttons.Back) || Input.WasKeyPressed(Keys.Escape)) { this.Exit(); } Menu.Update(); EntityManager.Update(); EnemySpawner.Update(); base.Update(gameTime); }