internal static void DestroyAlienGrid(AlienGrid pAlienGrid) { // Iterate through AlienGridColumns AlienGridColumn pGridColumn = (AlienGridColumn)pAlienGrid.GetFirstChild(); while (pGridColumn != null) { // Iterate through shield bricks Alien pAlien = (Alien)pGridColumn.GetFirstChild(); while (pAlien != null) { // Remove Alien from composite pGridColumn.Remove(pAlien); // Kill Alien pAlien.Remove(SpriteBatch.Name.Alien, SpriteBatch.Name.CollisionBox); // Get next Alien pAlien = (Alien)pGridColumn.GetFirstChild(); } // Remove AlienGridColumn from composite pAlienGrid.Remove(pGridColumn); // Kill AlienGridColumn pGridColumn.Remove(SpriteBatch.Name.Alien, SpriteBatch.Name.CollisionBox); // Get next AlienGridColumn pGridColumn = (AlienGridColumn)pAlienGrid.GetFirstChild(); } }