コード例 #1
0
        public static void ResetAllAlienGrid()
        {
            AlienManager pMan = AlienManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            AlienNode     pCurr = (AlienNode)pMan.BaseGetActive();
            AlienNode     pNext;
            GameObject    pParent;
            GameObject    pObj;
            AlienCategory pAlien;

            while (pCurr != null)
            {
                pNext = (AlienNode)pCurr.pNext;

                // Get Alien object and its parent. The parent will be AlienGroup or AlienColumn.
                pObj = pCurr.GetAlienObject();

                pParent = (GameObject)pCurr.GetAlienObject().pParent;

                pObj.isDead = false;

                pObj.pPrev = null;
                pObj.pNext = null;

                pParent.Add(pObj);

                if (pObj.type == Component.Container.LEAF)
                {
                    pAlien = (AlienCategory)pObj;

                    pObj.x = pAlien.originX;
                    pObj.y = pAlien.originY;
                    SpriteBatch pSB_GameSprite = SpriteBatchManager.Find(SpriteBatch.Name.GameSprites);
                    Debug.Assert(pSB_GameSprite != null);

                    pSB_GameSprite.Attach(pObj.pProxySprite);
                    // pMan.pSB_GameSprite.Attach(pObj.pProxySprite);
                }

                SpriteBatch pSB_Collsion = SpriteBatchManager.Find(SpriteBatch.Name.BoxSprites);
                pSB_Collsion.Attach(pObj.pColObject.pBoxSprite);
                // pMan.pSB_CollisionSprite.Attach(pObj.pColObject.pBoxSprite);

                AlienManager.Remove(pCurr);

                DLink p = pMan.BaseGetActive();

                pCurr = pNext;
            }

            // Checked new Alien Hierarchy is good
            //  pMan.pSB_GameSprite.Dump();
            //  pMan.pSB_CollisionSprite.Dump();
        }
コード例 #2
0
        public static void PrintMe()
        {
            AlienManager pMan = AlienManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            AlienNode pNode = (AlienNode)pMan.BaseGetActive();

            while (pNode != null)
            {
                pNode.PrintMe();
                pNode = (AlienNode)pNode.pNext;
            }
        }