//---------------------------------------------------------------------------------- // Constructor //---------------------------------------------------------------------------------- public GameObject Create(GameObject.Name theName, float posx = 0.0f, float posy = 0.0f) { GameObject pGameObj = null; switch (theName) { case GameObject.Name.ExplosionRoot: pGameObj = new ExplosionRoot(GameObject.Name.ExplosionRoot, GameSprite.Name.NullObject, posx, posy); break; case GameObject.Name.AlienExplosion: pGameObj = this.pManager.Add(GameObject.Name.AlienExplosion, GameSprite.Name.AlienExplosion, posx, posy); break; case GameObject.Name.MissileExplosion: pGameObj = this.pManager.Add(GameObject.Name.MissileExplosion, GameSprite.Name.MissileExplosion, posx, posy); break; case GameObject.Name.BombExplosion: pGameObj = this.pManager.Add(GameObject.Name.BombExplosion, GameSprite.Name.BombExplosion, posx, posy); break; default: Debug.WriteLine("Choose the Explosion you want by name."); Debug.Assert(false); break; } Debug.Assert(pGameObj != null); // attach to the group pGameObj.ActivateGameSprite(this.pSpriteBatch); pGameObj.ActivateCollisionSprite(this.pCollisionSpriteBatch); return(pGameObj); }
//---------------------------------------------------------------------------------- // Factory Methods //---------------------------------------------------------------------------------- public override GameObject Build(GameObject.Name theName, float x = 0.0f, float y = 0.0f) { ExplosionRoot pExplosionRoot = (ExplosionRoot)this.Create(theName, x, y); pExplosionRoot.ActivateGameSprite(this.pSpriteBatch); pExplosionRoot.ActivateCollisionSprite(this.pCollisionSpriteBatch); GameObjectManager.Attach(pExplosionRoot); Debug.WriteLine("Finished : Creating the Explosion Root Composite"); return(pExplosionRoot); }