Пример #1
0
        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();
            }
        }
Пример #2
0
        public override void Execute(float deltaTime)
        {
            float NewTime    = RandomManager.RandomInt(1, 3);
            float randColumn = RandomManager.RandomInt(1, 12);

            AlienGrid   pGrid   = (AlienGrid)GameObjectManager.Find(GameObject.Name.AlienGrid);
            AlienColumn pColumn = (AlienColumn)pGrid.GetFirstChild();

            AlienColumn temp = pColumn;
            int         col  = 0;

            while (temp != null)
            {
                col++;
                if (col == randColumn)
                {
                    temp.DropBomb();
                }
                temp = (AlienColumn)Iterator.GetSibling(temp);
            }

            // Add itself back to timer
            TimerManager.Add(TimeEvent.Name.DropBomb, this, NewTime);
        }