public static void ActivateBomb(AlienColumn pBombOwner)
 {
     pBombOwner.pBomb.delta = 1.5f;
     RandomizeBombType(pBombOwner.pBomb);
     pBombOwner.pBomb.bMarkForDeath = false;
     pBombOwner.pBomb.pStrategy.Reset(pBombOwner.pBomb.y);
 }
        public override void Remove()
        {
            // Keenan(delete.E)
            // Since the Root object is being drawn
            // 1st set its size to zero
            this.poColObj.poColRect.Set(0, 0, 0, 0);
            //base.Update();


            this.pProxySprite.Set(GameSprite.Name.NullObject);


            AlienColumn pParent = (AlienColumn)this.pParent;

            this.y = pParent.GetTop();
            //// Update the parent (missile root)
            //GameObject pParent = (GameObject)this.pParent;

            //remove missile from composite... missile only has one parent..need to find root for others?
            //pParent.Remove(this);
            //pParent.Update();

            // Now remove it
            //base.Remove();

            //pParent.Remove();
        }
Example #3
0
        public void dropBomb()
        {
            AlienColumn pAlienColumn = (AlienColumn)this.poHead;

            while (pAlienColumn != null)
            {
                if (this.randNum.Next(10) >= 10 - this.level)
                {
                    AlienCategory pAlien = (AlienCategory)pAlienColumn.poHead;

                    if (pAlien != null)
                    {
                        // get last alien of column
                        while (pAlien.pNext != null)
                        {
                            pAlien = (AlienCategory)pAlien.pNext;
                        }

                        pAlien.dropBomb();
                    }
                }

                pAlienColumn = (AlienColumn)pAlienColumn.pNext;
            }
        }
Example #4
0
        public override void VisitColumn(AlienColumn a)
        {
            //now Alien Column v ShieldRoot
            GameObject pGameObject = (GameObject)Iterator.GetChild(a);

            ColPair.Collide(pGameObject, this);
        }
Example #5
0
        public void ResetAliens()
        {
            this.CurrentMoveRate = this.StartingMoveRate;
            this.AlienCount      = 55;

            ForwardIterator pFor = new ForwardIterator(this);

            GameObject pGameObj;
            GameObject pParent;
            Component  pNode = pFor.First();

            while (!pFor.IsDone())
            {
                pGameObj = (GameObject)pNode;

                pGameObj.pProxySprite.Set(pGameObj.pSpriteName);
                pGameObj.poColObj.poColRect.Set(pGameObj.pProxySprite.pSprite.GetScreenRect());
                pGameObj.ResetLocation();
                pGameObj.bMarkForDeath = false;

                if (pGameObj.name == Name.AlienColumn)
                {
                    AlienColumn ptemp = (AlienColumn)pGameObj;
                    ptemp.pBomb.ResetBomb();
                }

                pParent = (GameObject)pGameObj.pParent;
                if (pParent != null)
                {
                    pParent.Update();
                }
                pNode = pFor.Next();
            }
        }
Example #6
0
        // need to test this
        public override void Execute(float deltaTime)
        {
            AlienColumn pSafety = (AlienColumn)Iterator.GetChild(this.pAlienGroup);

            if (pSafety != null)
            {
                AlienColumn pNode = pSafety;

                Random rNum   = new Random();
                float  ColNum = rNum.Next(0, 11);
                int    count  = 0;

                while (pNode != null)
                {
                    //check to shoot bomb
                    if (pNode.GetColIndex() == ColNum)
                    {
                        float minX = pNode.GetColObject().poColRect.minX;
                        float minY = pNode.GetColObject().poColRect.minY;

                        pNode.ActivateBomb(minX, minY);

                        TimerMan.Add(TimeEvent.Name.ColumnShoot, this, deltaTime);
                        break;
                    }

                    //might get some random or extra bomb drops
                    if (ColNum == count)
                    {
                        float minX = pNode.GetColObject().poColRect.minX;
                        float minY = pNode.GetColObject().poColRect.minY;

                        pNode.ActivateBomb(minX, minY);

                        TimerMan.Add(TimeEvent.Name.ColumnShoot, this, deltaTime);
                        break;
                    }

                    //at the last node and its not the column to shoot bomb
                    if (pNode.pNext == null && pNode.GetColIndex() != ColNum)
                    {
                        //go back to the front of the list
                        pNode = pSafety;
                        count++;
                        continue;
                    }

                    pNode = (AlienColumn)pNode.pNext;
                    count++;
                }
            }

            else
            {
                // do nothing
            }
        }
Example #7
0
        //----------------------------------------------------------------------------------
        // Methods
        //----------------------------------------------------------------------------------

        public GameObject Create(GameObject.Name theName, AlienCategory.Type type, float posx = 0.0f, float posy = 0.0f)
        {
            GameObject pGameObj = null;

            switch (type)
            {
            case AlienCategory.Type.AlienGrid:
                pGameObj = new AlienGrid(theName, GameSprite.Name.NullObject, posx, posy);
                ((AlienGrid)pGameObj).SetCanDropBombs(true);
                break;

            case AlienCategory.Type.Column:
                pGameObj = new AlienColumn(theName, GameSprite.Name.NullObject, posx, posy);
                break;

            case AlienCategory.Type.Alien:
                pGameObj = new AlienGO(theName, GameSprite.Name.Alien, 20, posx, posy);
                break;

            case AlienCategory.Type.Octopus:
                pGameObj = new AlienGO(theName, GameSprite.Name.Octopus, 10, posx, posy);
                break;

            case AlienCategory.Type.Squid:
                pGameObj = new AlienGO(theName, GameSprite.Name.Squid, 30, posx, posy);
                break;

            case AlienCategory.Type.UFOGrid:
                pGameObj = new AlienGrid(theName, GameSprite.Name.NullObject, posx, posy);
                ((AlienGrid)pGameObj).SetCanDropBombs(false);
                break;

            case AlienCategory.Type.Saucer:
                pGameObj = new AlienGO(theName, GameSprite.Name.Saucer, 100, posx, posy);
                break;

            default:
                Debug.WriteLine("Choose the Space Invader you want by name.");
                Debug.Assert(false);
                break;
            }

            // add it to the Game Object Manager
            Debug.Assert(pGameObj != null);

            // Should only attach root elements in the Scene

            // attach to the group
            pGameObj.ActivateGameSprite(this.pSpriteBatch);
            pGameObj.ActivateCollisionSprite(this.pCollisionSpriteBatch);

            return(pGameObj);
        }
Example #8
0
        public override void Execute(float deltaTime)
        {
            int bombStyle = pRandom.Next(0, 3);
            int numCol    = 0;

            AlienColumn pColumn = (AlienColumn)this.pGridHead.poHead;

            while (pColumn != null)
            {
                numCol++;
                pColumn = (AlienColumn)pColumn.pNext;
            }
            int col = pRandom.Next(0, numCol);

            pColumn = (AlienColumn)this.pGridHead.poHead;
            while (col > 0)
            {
                col--;
                pColumn = (AlienColumn)pColumn.pNext;
            }

            if (pColumn != null)
            {
                GameObject pAlien = (GameObject)pColumn.poLast;
                Bomb       pBomb;
                switch (bombStyle)
                {
                case 0:
                    pBomb = BombManager.GetZigZagFall(pAlien.x, pAlien.y);
                    break;

                case 1:
                    pBomb = BombManager.GetStraightFall(pAlien.x, pAlien.y);
                    break;

                case 2:
                    pBomb = BombManager.GetCrossFall(pAlien.x, pAlien.y);
                    break;

                default:
                    Debug.Assert(false);
                    break;
                }
            }

            float nextDeltaTime = pRandom.Next(5, 20);

            nextDeltaTime /= 10;
            TimerManager.Add(TimeEvent.Name.SpawnBomb, this, nextDeltaTime);
        }
Example #9
0
        public Bomb(AlienColumn pOwner)
            : base(GameObject.Name.Bomb, GameSprite.Name.NullObject)
        {
            this.x     = pOwner.x;
            this.y     = pOwner.GetBottom();
            this.delta = 0.0f;

            this.pOwner = pOwner;

            this.pDaggers  = new FallDagger();
            this.pZigZag   = new FallZigZag();
            this.pStraight = new FallStraight();
            this.pStrategy = null;

            this.poColObj.pColSprite.SetLineColor(1, 1, 0);
        }
Example #10
0
        public GameObject Create(GameObject.Name name, AlienCategory.Type type, float posX = 0.0f, float posY = 0.0f)
        {
            GameObject pGameObj = null;

            switch (type)
            {
            case AlienCategory.Type.Green:
                pGameObj = new GreenAlien(GameObject.Name.GreenAlien, GameSprite.Name.GreenAlien, posX, posY);
                break;

            case AlienCategory.Type.Red:
                pGameObj = new RedAlien(GameObject.Name.RedAlien, GameSprite.Name.RedAlien, posX, posY);
                break;

            case AlienCategory.Type.White:
                pGameObj = new WhiteAlien(GameObject.Name.WhiteAlien, GameSprite.Name.WhiteAlien, posX, posY);
                break;

            case AlienCategory.Type.Yellow:
                pGameObj = new YellowAlien(GameObject.Name.YellowAlien, GameSprite.Name.YellowAlien, posX, posY);
                break;

            case AlienCategory.Type.Blue:
                pGameObj = new BlueAlien(GameObject.Name.BlueAlien, GameSprite.Name.BlueAlien, posX, posY);
                break;

            case AlienCategory.Type.Grid:
                pGameObj = new AlienGrid(name, GameSprite.Name.NullObject, posX, posY);
                break;

            case AlienCategory.Type.Column:
                pGameObj = new AlienColumn(name, GameSprite.Name.NullObject, posX, posY);
                break;

            default:
                // something is wrong
                Debug.Assert(false);
                break;
            }
            Debug.Assert(pGameObj != null);

            pGameObj.ActivateGameSprite(this.pSpriteBatch);
            pGameObj.ActivateCollisionSprite(this.pBoxSpriteBatch);
            GameObjectMan.Attach(pGameObj);

            return(pGameObj);
        }
        public static void SetState(StateName inState, AlienColumn pCol)
        {
            BombManager pBombMan = BombManager.GetInstance();

            Debug.Assert(pBombMan != null);

            switch (inState)
            {
            case StateName.Ready:
                pCol.state = pReadyState;
                break;

            case StateName.BombDropping:
                pCol.state = pFallingState;
                break;
            }
        }
Example #12
0
        public GameObject Create(GameObject.Name name, float posX = 0.0f, float posY = 0.0f)
        {
            GameObject pGameObj = null;

            switch (name)
            {
            case GameObject.Name.PurpleOctopus:
                pGameObj = new PurpleOctopus(GameObject.Name.PurpleOctopus, GameSprite.Name.PurpleOctopus, posX, posY);
                break;

            case GameObject.Name.BlueCrab:
                pGameObj = new BlueCrab(GameObject.Name.BlueCrab, GameSprite.Name.BlueCrab, posX, posY);
                break;

            case GameObject.Name.GreenSquid:
                pGameObj = new GreenSquid(GameObject.Name.GreenSquid, GameSprite.Name.GreenSquid, posX, posY);
                break;

            case GameObject.Name.OrangeSaucer:
                pGameObj = new OrangeSaucer(GameObject.Name.OrangeSaucer, GameSprite.Name.OrangeSaucer, posX, posY);
                break;

            case GameObject.Name.AlienColumn:
                pGameObj = new AlienColumn(GameObject.Name.AlienColumn, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            case GameObject.Name.AlienGrid:
                pGameObj = new AlienGrid(GameObject.Name.AlienGrid, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            default:
                // something is wrong
                Debug.Assert(false);
                break;
            }
            Debug.Assert(pGameObj != null);

            // Attached to Group
            pGameObj.ActivateGameSprite(this.pSpriteBatch);
            pGameObj.ActivateCollisionSprite(this.pCollisionSpriteBatch);

            return(pGameObj);
        }
Example #13
0
        public GameObject Create(GameObject.Name name, AlienCategory.Type type, float posX = 0.0f, float posY = 0.0f)
        {
            GameObject pGameObj = null;

            switch (type)
            {
            case AlienCategory.Type.Squid:
                pGameObj = new SquidAlien(name, GameSprite.Name.SquidOpen, posX, posY);
                break;

            case AlienCategory.Type.Crab:
                pGameObj = new CrabAlien(name, GameSprite.Name.CrabOpen, posX, posY);
                break;

            case AlienCategory.Type.Octopus:
                pGameObj = new OctopusAlien(name, GameSprite.Name.OctopusOpen, posX, posY);
                break;

            case AlienCategory.Type.Grid:
                pGameObj = new AlienGrid(name, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            case AlienCategory.Type.Column:
                pGameObj = new AlienColumn(name, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            default:
                // something is wrong
                Debug.Assert(false);
                break;
            }

            // add it to the gameObjectManager
            Debug.Assert(pGameObj != null);
            //GameObjectMan.Attach(pGameObj);

            // Attached to Group
            pGameObj.ActivateGameSprite(this.pSpriteBatch);
            pGameObj.ActivateCollisionSprite(this.pCollisionSpriteBatch);

            return(pGameObj);
        }
Example #14
0
        public GameObject Create(GameObject.Name name, AlienCategory.Type type, GameObject pContainer = null, float posX = 0.0f, float posY = 0.0f)
        {
            GameObject pGameObj = null;

            switch (type)
            {
            case AlienCategory.Type.Squid:
                pGameObj = new Squid(GameObject.Name.Squid, GameSprite.Name.Squid, posX, posY);
                AlienCategory pAlienCategory = (AlienCategory)pGameObj;
                pAlienCategory.SetState(AlienMan.State.Ready);
                break;

            case AlienCategory.Type.Crab:
                pGameObj       = new Crab(GameObject.Name.Crab, GameSprite.Name.Crab, posX, posY);
                pAlienCategory = (AlienCategory)pGameObj;
                pAlienCategory.SetState(AlienMan.State.Ready);
                break;

            case AlienCategory.Type.Octopus:
                pGameObj       = new Octopus(GameObject.Name.Octopus, GameSprite.Name.Octopus, posX, posY);
                pAlienCategory = (AlienCategory)pGameObj;
                pAlienCategory.SetState(AlienMan.State.Ready);
                break;

            case AlienCategory.Type.Group:
                pGameObj = new AlienGroup(name, GameSprite.Name.NullObject, posX, posY);
                break;

            case AlienCategory.Type.Column:
                pGameObj = new AlienColumn(name, GameSprite.Name.NullObject, posX, posY);
                break;

            default:
                Debug.Assert(false);
                break;
            }

            // Attached to Group
            this.AttachTo(pGameObj, pContainer);
            return(pGameObj);
        }
Example #15
0
        public GameObject Create(AlienCategory.Type type, GameObject.Name gameName, float posX = 0.0f, float posY = 0.0f)
        {
            GameObject pAlien = null;

            switch (type)
            {
            case AlienCategory.Type.Squid:
                pAlien = new Squid(gameName, GameSprite.Name.Squid, posX, posY);
                break;

            case AlienCategory.Type.Crab:
                pAlien = new Crab(gameName, GameSprite.Name.Crab, posX, posY);
                break;

            case AlienCategory.Type.Octopus:
                pAlien = new Octopus(gameName, GameSprite.Name.Octopus, posX, posY);
                break;

            case AlienCategory.Type.AlienColumn:
                pAlien = new AlienColumn(gameName, GameSprite.Name.NullObject, posX, posY);
                break;

            case AlienCategory.Type.AlienGrid:
                pAlien = new AlienGrid(gameName, GameSprite.Name.NullObject, posX, posY);
                break;

            default:
                // something is wrong
                Debug.Assert(false);
                break;
            }

            // add to the tree
            this.pTree.Add(pAlien);

            // Attached to Group
            pAlien.ActivateGameSprite(this.pSpriteBatch);
            pAlien.ActivateCollisionSprite(this.pCollisionSpriteBatch);

            return(pAlien);
        }
        public static Bomb CreateBomb(AlienColumn pOwner)
        {
            // each column owns one instance of a bomb that is reused.
            // create a null bomb
            Bomb pBomb = new Bomb(pOwner);

            SpriteBatch pSB_Aliens = SpriteBatchManager.Find(SpriteBatch.Name.Aliens);
            SpriteBatch pSB_Boxes  = SpriteBatchManager.Find(SpriteBatch.Name.Boxes);

            pBomb.ActivateCollisionSprite(pSB_Boxes);
            pBomb.ActivateGameSprite(pSB_Aliens);

            GameObject pBombRoot = GameObjectManager.Find(GameObject.Name.BombRoot);

            Debug.Assert(pBombRoot != null);

            // Add to GameObject Tree - {update and collisions}
            pBombRoot.Add(pBomb);

            return(pBomb);
        }
Example #17
0
        //-------------------------------------------------------------------------------
        // Methods
        //-------------------------------------------------------------------------------
        public GameObject create(GameObject.Name objectName, AlienCategory.Type alienType, float posX = 0.0f, float posY = 0.0f)
        {
            GameObject pGameObject = null;

            switch (alienType)
            {
            case AlienCategory.Type.Octopus:
                pGameObject = new Octopus(objectName, GameSprite.Name.Octopus, posX, posY);
                break;

            case AlienCategory.Type.Crab:
                pGameObject = new Crab(objectName, GameSprite.Name.Crab, posX, posY);
                break;

            case AlienCategory.Type.Squid:
                pGameObject = new Squid(objectName, GameSprite.Name.Squid, posX, posY);
                break;

            case AlienCategory.Type.Column:
                pGameObject = new AlienColumn(objectName, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            case AlienCategory.Type.Group:
                pGameObject = new AlienGroup(objectName, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            default:
                Debug.Assert(false);
                break;
            }

            // add pGameObject to GameObjectMan and pGrid
            Debug.Assert(pGameObject != null);

            // attached to SpritBatch
            pGameObject.activateGameSprite(this.pSpriteBatch);
            pGameObject.activateCollisionSprite(this.pBoxSpriteBatch);

            return(pGameObject);
        }
Example #18
0
        public GameObject Create(GameObject.Name name, AlienCategory.Type type, float posX = 0.0f, float posY = 0.0f, float ColIndex = 0.0f)
        {
            GameObject pGameObject = null;

            switch (type)
            {
            case AlienCategory.Type.Squid:
                pGameObject = new SquidGO(name, GameSprite.Name.Squid, posX, posY);
                break;

            case AlienCategory.Type.Crab:
                pGameObject = new CrabGO(name, GameSprite.Name.Crab, posX, posY);
                break;

            case AlienCategory.Type.Octopus:
                pGameObject = new OctoGO(name, GameSprite.Name.Octopus, posX, posY);
                break;

            case AlienCategory.Type.Group:
                pGameObject = new AlienGroup(name, GameSprite.Name.NullObject, 0.0f, 0.0f);
                break;

            case AlienCategory.Type.Column:
                pGameObject = new AlienColumn(name, GameSprite.Name.NullObject, 0.0f, 0.0f, ColIndex);
                break;

            default:
                Debug.Assert(false);
                break;
            }

            this.pTree.Add(pGameObject);


            //attach to Group to Draw/Render it
            pGameObject.ActivateGameSprite(this.pSpriteBatch);
            pGameObject.ActivateCollisionSprite(this.pColSpriteBatch);

            return(pGameObject);
        }
Example #19
0
        public static GameObject Create(AlienCategory.Type type, int _Index, float posX = 0.0f, float posY = 0.0f)
        {
            AlienFactory pFactory = AlienFactory.PrivGetInstance();
            GameObject   pGameObj = null;

            switch (type)
            {
            case AlienCategory.Type.Crab:
                pGameObj = new AlienCrab(GameObject.Name.Crab, GameSprite.Name.Crab, _Index, posX, posY);
                break;

            case AlienCategory.Type.Octopus:
                pGameObj = new AlienOctopus(GameObject.Name.Octopus, GameSprite.Name.Octopus, _Index, posX, posY);
                break;

            case AlienCategory.Type.Squid:
                pGameObj = new AlienSquid(GameObject.Name.Squid, GameSprite.Name.Squid, _Index, posX, posY);
                break;

            case AlienCategory.Type.Column:
                pGameObj = new AlienColumn(GameObject.Name.AlienColumn, GameSprite.Name.NullObject, _Index, 0.0f, 0.0f);
                break;

            case AlienCategory.Type.Group:
                pGameObj = new AlienGroup(GameObject.Name.AlienGroup, GameSprite.Name.NullObject, _Index, 0.0f, 0.0f);
                break;

            default:
                Debug.Assert(false);
                break;
            }

            Debug.Assert(pGameObj != null);

            // Attach to SpriteBatch
            pGameObj.ActivateGameSprite(pFactory.pGameSpriteBatch);
            pGameObj.ActivateCollisionSprite(pFactory.pBoxSpriteBatch);
            return(pGameObj);
        }
Example #20
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);
        }
        public override void VisitAlienColumn(AlienColumn a)
        {
            GameObject pGameObj = (GameObject)Iterator.GetChild(a);

            ColPair.Collide(pGameObj, this);
        }
 public abstract void Handle(AlienColumn pCol);
 public virtual void VisitColumn(AlienColumn ac)
 {
     // no differed to subcass
     Debug.WriteLine("Visit by AlienColumn not implemented");
     Debug.Assert(false);
 }
Example #24
0
        public override void DropBomb(AlienColumn pCol)
        {
            BombManager.ActivateBomb(pCol);

            this.Handle(pCol);
        }
Example #25
0
        public override void LoadContent()
        {
            SpriteNodeBatch pSB_Texts = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.Texts);

            Texture pTexture = TextureManager.Add(Texture.Name.Consolas36pt, "Consolas36pt.tga");

            GlyphManager.AddXml(Glyph.Name.Consolas36pt, "Consolas36pt.xml", Texture.Name.Consolas36pt);



            TextureManager.Add(Texture.Name.SpaceInvaders, "SpaceInvaders.tga");
            ImageManager.Add(Image.Name.SquidA, Texture.Name.SpaceInvaders, 61, 3, 8, 8);
            ImageManager.Add(Image.Name.AlienA, Texture.Name.SpaceInvaders, 33, 3, 11, 8);
            ImageManager.Add(Image.Name.OctopusA, Texture.Name.SpaceInvaders, 3, 3, 12, 8);
            ImageManager.Add(Image.Name.Saucer, Texture.Name.SpaceInvaders, 99, 3, 16, 8);


            //----------------------------------------------------------------------------------
            // Print Space Invaders Title Scene
            //----------------------------------------------------------------------------------

            Font pFont;

            int topTextLine = 980;

            pFont = FontManager.Add(Font.Name.Score1_Title, SpriteNodeBatch.Name.Texts, "SCORE<1>", Glyph.Name.Consolas36pt, 100, topTextLine);
            pFont = FontManager.Add(Font.Name.HighScore_Title, SpriteNodeBatch.Name.Texts, "HI-SCORE<1>", Glyph.Name.Consolas36pt, 350, topTextLine);
            pFont = FontManager.Add(Font.Name.Score2_Title, SpriteNodeBatch.Name.Texts, "SCORE<2>", Glyph.Name.Consolas36pt, 650, topTextLine);


            int scoreTextLine = 940;
            int x_shift       = 40;

            pFont = FontManager.Add(Font.Name.Score1, SpriteNodeBatch.Name.Texts, "0000", Glyph.Name.Consolas36pt, 100 + x_shift, scoreTextLine);
            pFont = FontManager.Add(Font.Name.HighScore, SpriteNodeBatch.Name.Texts, "0000", Glyph.Name.Consolas36pt, 350 + x_shift, scoreTextLine);
            pFont = FontManager.Add(Font.Name.Score2, SpriteNodeBatch.Name.Texts, "0000", Glyph.Name.Consolas36pt, 650 + x_shift, scoreTextLine);


            int playTextLine = topTextLine - 200;

            pFont = FontManager.Add(Font.Name.Play, SpriteNodeBatch.Name.Texts, "PLAY", Glyph.Name.Consolas36pt, 400, playTextLine);
            pFont = FontManager.Add(Font.Name.GameTitle, SpriteNodeBatch.Name.Texts, "SPACE   INVADERS", Glyph.Name.Consolas36pt, 300, playTextLine - 60);


            int advTableTop = topTextLine - 430;

            pFont = FontManager.Add(Font.Name.ScoreTable, SpriteNodeBatch.Name.Texts, "*SCORE   ADVANCE   TABLE*", Glyph.Name.Consolas36pt, 200, advTableTop);


            int   leftAlignPoints = 335;
            float size            = 36.0f;


            GameSpriteManager.Add(GameSprite.Name.Saucer, Image.Name.Saucer, leftAlignPoints, advTableTop - 50, 60, 30);
            pFont = FontManager.Add(Font.Name.UFO_Points, SpriteNodeBatch.Name.Texts, "  =? MYSTERY", Glyph.Name.Consolas36pt, leftAlignPoints, advTableTop - 50);


            GameSpriteManager.Add(GameSprite.Name.Squid, Image.Name.SquidA, leftAlignPoints, advTableTop - 100, size, size);
            pFont = FontManager.Add(Font.Name.Squid_Points, SpriteNodeBatch.Name.Texts, "  =30 POINTS", Glyph.Name.Consolas36pt, leftAlignPoints, advTableTop - 100);


            GameSpriteManager.Add(GameSprite.Name.Alien, Image.Name.AlienA, leftAlignPoints, advTableTop - 150, size, size);
            pFont = FontManager.Add(Font.Name.Alien_Points, SpriteNodeBatch.Name.Texts, "  =20 POINTS", Glyph.Name.Consolas36pt, leftAlignPoints, advTableTop - 150);


            GameSpriteManager.Add(GameSprite.Name.Octopus, Image.Name.OctopusA, leftAlignPoints, advTableTop - 200, size, size);
            pFont = FontManager.Add(Font.Name.Octopus_Points, SpriteNodeBatch.Name.Texts, "  =10 POINTS", Glyph.Name.Consolas36pt, leftAlignPoints, advTableTop - 200);
            pFont.SetColor(0.1f, 0.9f, 0.1f);



            // -----------------------------------------------------------------------------
            // ---------------------- Create Sprite Node Batches ---------------------------
            // -----------------------------------------------------------------------------



            //SpriteNodeBatch pBatch_Texts = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.Texts, 2);
            //SpriteNodeBatch pBatch_Player = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.Players, 5);
            //SpriteNodeBatch pBatch_TheSwarm = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.TheSwarm, 10);
            //SpriteNodeBatch pBatch_Shields = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.Shields, 200);
            SpriteNodeBatch pSB_Invaders = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.Invaders, 100);
            SpriteNodeBatch pBatch_Boxes = SpriteNodeBatchManager.Add(SpriteNodeBatch.Name.Boxes, 400);

            pBatch_Boxes.SetDrawStatus(false);


            AlienFactory AF = new AlienFactory(SpriteNodeBatch.Name.Invaders, SpriteNodeBatch.Name.Boxes);

            AlienColumn pAlienCol = (AlienColumn)AF.Create(GameObject.Name.Column_0, AlienCategory.Type.Column);
            GameObject  pGameObj;

            pGameObj = AF.Create(GameObject.Name.Saucer, AlienCategory.Type.Saucer, leftAlignPoints - 9, advTableTop - 50);
            pAlienCol.Add(pGameObj);
            pGameObj = AF.Create(GameObject.Name.Squid, AlienCategory.Type.Squid, leftAlignPoints, advTableTop - 100);
            pAlienCol.Add(pGameObj);
            pGameObj = AF.Create(GameObject.Name.Alien, AlienCategory.Type.Alien, leftAlignPoints, advTableTop - 150);
            pAlienCol.Add(pGameObj);
            pGameObj = AF.Create(GameObject.Name.Octopus, AlienCategory.Type.Octopus, leftAlignPoints, advTableTop - 200);
            pAlienCol.Add(pGameObj);

            GameObjectManager.Attach(pAlienCol);
        }
Example #26
0
 public override void Handle(AlienColumn pCol)
 {
     BombManager.SetState(BombManager.StateName.BombDropping, pCol);
     //Debug.WriteLine("BOMB DROPPING STATE\n");
 }
Example #27
0
        public override void VisitAlienColumn(AlienColumn ac)
        {
            GameObject pGameObj = Iterator.GetChildGameObject(this);

            CollisionPair.Collide(this, ac);
        }
 public abstract void DropBomb(AlienColumn pCol);
Example #29
0
 public override void VisitColumn(AlienColumn ac)
 {
     // Alien Column vs ShieldRoot
     CollPair.Collide((GameObject)Iterator.GetChild(ac), this);
 }
Example #30
0
 public virtual void VisitAlienColumn(AlienColumn ac)
 {
     Debug.Assert(false);
 }