//----------------------------------------------------------------------------------
        // 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);
        }
        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 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 Alien(GameSprite.Name.Sprite_Squid, name, posX, posY);
                break;

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

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

            case AlienCategory.Type.Grid:
                pGameObj = new AliensGrid(name);
                break;

            case AlienCategory.Type.Column:
                pGameObj = new AliensColumn(name);

                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(pBoxBatch);

            return(pGameObj);
        }
Beispiel #4
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);
        }
Beispiel #5
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);
        }
Beispiel #6
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);
        }
Beispiel #7
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);
        }
Beispiel #8
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);
        }
Beispiel #9
0
 //----------------------------------------------------------------------------------
 // Constructor
 //----------------------------------------------------------------------------------
 public AlienCategory(GameObject.Name gameObjName, GameSprite.Name gameSpriteName, AlienCategory.Type at)
     : base(gameObjName, gameSpriteName)
 {
     this.type = at;
 }