Exemple #1
0
        public override void Execute(float deltaTime)
        {
            int bombStyle = pRandom.Next(0, 3);

            GameObject pUFO = (GameObject)this.pGridHead.poHead;

            Bomb pBomb;

            if (pUFO.isDead == false)
            {
                switch (bombStyle)
                {
                case 0:
                    pBomb = BombManager.GetZigZagFall(pUFO.x, pUFO.y);
                    break;

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

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

                default:
                    Debug.Assert(false);
                    break;
                }
            }
            float nextDeltaTime = pRandom.Next(2, 4);

            TimerManager.Add(TimeEvent.Name.SpawnBomb, this, nextDeltaTime);
        }
Exemple #2
0
 static public void Create(BombGroup pGroup)
 {
     if (pInstance == null)
     {
         pInstance = new BombManager();
     }
     pInstance.pBombGroup = pGroup;
     Debug.Assert(pInstance != null);
 }
        public AlienColumn(GameObject.Name name, GameSprite.Name spriteName, float posX, float posY)
            : base(name, spriteName)
        {
            this.x = posX;
            this.y = posY;

            BombManager.SetState(BombManager.StateName.Ready, this);
            this.pBomb = BombManager.CreateBomb(this);

            this.poColObj.pColSprite.SetLineColor(0, 1, 1);
        }
        public static void Destroy()
        {
            BombManager pMan = BombManager.GetInstance();

            Debug.Assert(pMan != null);

            // Do something clever here
            // track peak number of active nodes
            // print stats on destroy
            // invalidate the singleton
        }
        public static void Create()
        {
            // make sure its the first time
            Debug.Assert(instance == null);

            // Do the initialization
            if (instance == null)
            {
                instance = new BombManager();
            }
            Debug.Assert(instance != null);
        }
Exemple #6
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);
        }
Exemple #7
0
        public static void DeactiveBomb(Bomb b)
        {
            Debug.Assert(b != null);

            BombManager pMan = BombManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            if (b.pColObject.pBoxSprite.GetBackToSBNode() != null)
            {
                b.RemoveFromSpriteBatch();
            }
            pMan.pBombGroup.RemoveFromHeadAndLast(b);
        }
Exemple #8
0
        public static void RemoveBombs()
        {
            BombGroup pGroup = (BombGroup)GameObjectManager.Find(GameObject.Name.BombGroup);
            Bomb      pBomb  = (Bomb)pGroup.poHead;
            Bomb      pNextBomb;

            while (pBomb != null)
            {
                pNextBomb = (Bomb)pBomb.pNext;

                BombManager.DeactiveBomb(pBomb);
                pBomb = pNextBomb;
            }
        }
Exemple #9
0
 public override void Execute()
 {
     // Let the gameObject deal with this...
     if (this.pSubB.name != GameObject.Name.Ship)
     {
         this.pBomb.delta = 0.0f;
         this.pBomb.pProxySprite.Set(GameSprite.Name.BombExplosion);
         this.pEvent.SetBomb(this.pBomb);
         TimerManager.Add(TimeEvent.Name.RemoveBomb, this.pEvent, 0.5f);
     }
     else
     {
         BombManager.Reset(this.pBomb);
     }
     this.pBomb.pOwner.Handle();
 }
        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;
            }
        }
Exemple #11
0
        public static Bomb GetZigZagFall(float posX, float posY)
        {
            BombManager pMan = BombManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            //if (pMan.pZigZag.isDead == true)
            //{
            //pMan.pZigZag.ResetPosition(posX, posY);
            pMan.pZigZag = new Bomb(GameObject.Name.BombZigZag, GameSprite.Name.BombZigZag, posX, posY);
            pMan.pSB_Bombs.Attach(pMan.pZigZag.pProxySprite);
            pMan.pSB_BombCollisionBox.Attach(pMan.pZigZag.pColObject.pBoxSprite);
            pMan.pBombGroup.Add(pMan.pZigZag);
            pMan.pZigZag.isDead = false;
            //}
            return(pMan.pZigZag);
        }
        public static void RandomizeBombType(Bomb pBomb)
        {
            BombManager pBombMan = BombManager.GetInstance();
            float       rand     = RandomManager.RandomInt(1, 4);

            switch (rand)
            {
            case 1:
                pBomb.pStrategy = pBomb.pZigZag;
                pBomb.pProxySprite.Set(GameSprite.Name.BombZigZag);
                break;

            case 2:
                pBomb.pStrategy = pBomb.pDaggers;
                pBomb.pProxySprite.Set(GameSprite.Name.BombDagger);
                break;

            case 3:
                pBomb.pStrategy = pBomb.pStraight;
                pBomb.pProxySprite.Set(GameSprite.Name.BombStraight);
                break;
            }
            pBomb.poColObj.poColRect.Set(pBomb.pProxySprite.pSprite.GetScreenRect());
        }
Exemple #13
0
        //-----------------------------------------------------------------------------
        // Game::LoadContent()
        //		Allows you to load all content needed for your engine,
        //	    such as objects, graphics, etc.
        //-----------------------------------------------------------------------------
        public override void LoadContent()
        {
            ScreenWidth  = this.GetScreenWidth();
            ScreenHeight = this.GetScreenHeight();

            //---------------------------------------------------------------------------------------------------------
            // Init Managers
            //---------------------------------------------------------------------------------------------------------

            //Constant Managers
            TextureManager.Create(1, 1);
            ImageManager.Create(5, 2);
            SoundManager.Create(3, 1);
            GameSpriteManager.Create(4, 2);
            BoxSpriteManager.Create(3, 1);
            CollisionStateManager.Create();
            GlyphManager.Create(3, 1);
            Simulation.Create();
            RandomManager.Create();
            BombManager.Create();
            ShipManager.Create();

            //State-unique Managers
            SpriteBatchManager.Create();
            GameObjectManager.Create();
            InputManager.Create();
            FontManager.Create();
            TimerManager.Create();
            CollisionPairManager.Create();



            //ProxySpriteManager.Create(10, 1);//not in use currently

            //---------------------------------------------------------------------------------------------------------
            // Load the Textures
            //---------------------------------------------------------------------------------------------------------

            TextureManager.Add(Texture.Name.SpaceInvaders, "SpaceInvaders.tga");

            //---------------------------------------------------------------------------------------------------------
            // Load Sounds
            //---------------------------------------------------------------------------------------------------------

            SoundManager.Add(Sound.Name.Invader1, "fastinvader1.wav");
            SoundManager.Add(Sound.Name.Invader2, "fastinvader2.wav");
            SoundManager.Add(Sound.Name.Invader3, "fastinvader3.wav");
            SoundManager.Add(Sound.Name.Invader4, "fastinvader4.wav");

            SoundManager.Add(Sound.Name.Shoot, "invaderkilled.wav");
            SoundManager.Add(Sound.Name.DeadAlien, "shoot.wav");
            SoundManager.Add(Sound.Name.UFO, "ufo_highpitch.wav");
            SoundManager.Add(Sound.Name.UFOExplosion, "ufo_lowpitch.wav");
            SoundManager.Add(Sound.Name.Explosion, "explosion.wav");

            //---------------------------------------------------------------------------------------------------------
            // Create Images
            //---------------------------------------------------------------------------------------------------------

            // --- aliens ---

            ImageManager.Add(Image.Name.OctopusA, Texture.Name.SpaceInvaders, 3, 3, 12, 8);
            ImageManager.Add(Image.Name.OctopusB, Texture.Name.SpaceInvaders, 18, 3, 12, 8);
            ImageManager.Add(Image.Name.AlienA, Texture.Name.SpaceInvaders, 33, 3, 11, 8);
            ImageManager.Add(Image.Name.AlienB, Texture.Name.SpaceInvaders, 47, 3, 11, 8);
            ImageManager.Add(Image.Name.SquidA, Texture.Name.SpaceInvaders, 61, 3, 8, 8);
            ImageManager.Add(Image.Name.SquidB, Texture.Name.SpaceInvaders, 72, 3, 8, 8);
            ImageManager.Add(Image.Name.Saucer, Texture.Name.SpaceInvaders, 99, 3, 16, 8);

            ImageManager.Add(Image.Name.Missile, Texture.Name.SpaceInvaders, 3, 29, 1, 4);
            ImageManager.Add(Image.Name.Ship, Texture.Name.SpaceInvaders, 3, 14, 13, 8);

            ImageManager.Add(Image.Name.AlienExplosion, Texture.Name.SpaceInvaders, 83, 3, 13, 8);
            ImageManager.Add(Image.Name.SaucerExplosion, Texture.Name.SpaceInvaders, 118, 3, 21, 8);
            ImageManager.Add(Image.Name.ShipExplosionA, Texture.Name.SpaceInvaders, 19, 14, 16, 8);
            ImageManager.Add(Image.Name.ShipExplosionB, Texture.Name.SpaceInvaders, 38, 14, 16, 8);

            ImageManager.Add(Image.Name.MissileExplosion, Texture.Name.SpaceInvaders, 7, 25, 8, 8);
            ImageManager.Add(Image.Name.BombExplosion, Texture.Name.SpaceInvaders, 86, 25, 6, 8);

            ImageManager.Add(Image.Name.BombDagger, Texture.Name.SpaceInvaders, 42, 27, 3, 6);
            ImageManager.Add(Image.Name.BombZigZag, Texture.Name.SpaceInvaders, 18, 26, 3, 7);
            ImageManager.Add(Image.Name.BombStraight, Texture.Name.SpaceInvaders, 65, 26, 3, 7);

            ImageManager.Add(Image.Name.ShieldBrick, Texture.Name.SpaceInvaders, 120, 35, 4, 2);
            ImageManager.Add(Image.Name.ShieldBrick_LeftTop0, Texture.Name.SpaceInvaders, 115, 30, 4, 2);
            ImageManager.Add(Image.Name.ShieldBrick_LeftTop1, Texture.Name.SpaceInvaders, 116, 31, 4, 2);
            ImageManager.Add(Image.Name.ShieldBrick_LeftBottom, Texture.Name.SpaceInvaders, 119, 43, 4, 2);
            ImageManager.Add(Image.Name.ShieldBrick_RightTop0, Texture.Name.SpaceInvaders, 132, 31, 4, 2);
            ImageManager.Add(Image.Name.ShieldBrick_RightTop1, Texture.Name.SpaceInvaders, 130, 31, 4, 2);
            ImageManager.Add(Image.Name.ShieldBrick_RightBottom, Texture.Name.SpaceInvaders, 126, 43, 4, 2);

            //---------------------------------------------------------------------------------------------------------
            // Create Glyphs
            //---------------------------------------------------------------------------------------------------------
            GlyphManager.Add(Glyph.Name.Space, 32, Texture.Name.SpaceInvaders, 99, 56, 5, 7);

            GlyphManager.Add(Glyph.Name.Asterisk, 42, Texture.Name.SpaceInvaders, 115, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Hyphen, 45, Texture.Name.SpaceInvaders, 131, 56, 5, 7);

            GlyphManager.Add(Glyph.Name.Zero, 48, Texture.Name.SpaceInvaders, 3, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.One, 49, Texture.Name.SpaceInvaders, 11, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Two, 50, Texture.Name.SpaceInvaders, 19, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Three, 51, Texture.Name.SpaceInvaders, 27, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Four, 52, Texture.Name.SpaceInvaders, 35, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Five, 53, Texture.Name.SpaceInvaders, 43, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Six, 54, Texture.Name.SpaceInvaders, 51, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Seven, 55, Texture.Name.SpaceInvaders, 59, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Eight, 56, Texture.Name.SpaceInvaders, 67, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Nine, 57, Texture.Name.SpaceInvaders, 75, 56, 5, 7);

            GlyphManager.Add(Glyph.Name.LessThan, 60, Texture.Name.SpaceInvaders, 83, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Equals, 61, Texture.Name.SpaceInvaders, 107, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.GreaterThan, 62, Texture.Name.SpaceInvaders, 91, 56, 5, 7);
            GlyphManager.Add(Glyph.Name.Question, 63, Texture.Name.SpaceInvaders, 123, 56, 5, 7);

            GlyphManager.Add(Glyph.Name.A, 65, Texture.Name.SpaceInvaders, 3, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.B, 66, Texture.Name.SpaceInvaders, 11, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.C, 67, Texture.Name.SpaceInvaders, 19, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.D, 68, Texture.Name.SpaceInvaders, 27, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.E, 69, Texture.Name.SpaceInvaders, 35, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.F, 70, Texture.Name.SpaceInvaders, 43, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.G, 71, Texture.Name.SpaceInvaders, 51, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.H, 72, Texture.Name.SpaceInvaders, 59, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.I, 73, Texture.Name.SpaceInvaders, 67, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.J, 74, Texture.Name.SpaceInvaders, 75, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.K, 75, Texture.Name.SpaceInvaders, 83, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.L, 76, Texture.Name.SpaceInvaders, 91, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.M, 77, Texture.Name.SpaceInvaders, 99, 36, 5, 7);
            GlyphManager.Add(Glyph.Name.N, 78, Texture.Name.SpaceInvaders, 3, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.O, 79, Texture.Name.SpaceInvaders, 11, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.P, 80, Texture.Name.SpaceInvaders, 19, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.Q, 81, Texture.Name.SpaceInvaders, 27, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.R, 82, Texture.Name.SpaceInvaders, 35, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.S, 83, Texture.Name.SpaceInvaders, 43, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.T, 84, Texture.Name.SpaceInvaders, 51, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.U, 85, Texture.Name.SpaceInvaders, 59, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.V, 86, Texture.Name.SpaceInvaders, 67, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.W, 87, Texture.Name.SpaceInvaders, 75, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.X, 88, Texture.Name.SpaceInvaders, 83, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.Y, 89, Texture.Name.SpaceInvaders, 91, 46, 5, 7);
            GlyphManager.Add(Glyph.Name.Z, 90, Texture.Name.SpaceInvaders, 99, 46, 5, 7);


            //---------------------------------------------------------------------------------------------------------
            // Create Sprites
            //---------------------------------------------------------------------------------------------------------

            // --- aliens ---

            GameSpriteManager.Add(GameSprite.Name.PurpleOctopus, Image.Name.OctopusA, 50, 300, 49, 33);
            GameSpriteManager.Add(GameSprite.Name.BlueCrab, Image.Name.AlienB, 200, 100, 45, 33);
            GameSpriteManager.Add(GameSprite.Name.GreenSquid, Image.Name.SquidA, 200, 300, 33, 33);
            GameSpriteManager.Add(GameSprite.Name.OrangeSaucer, Image.Name.Saucer, 50, 550, 59, 33, new Azul.Color(1.0f, 0.0f, 0.0f, 1.0f));

            //-----Missile----
            GameSpriteManager.Add(GameSprite.Name.Missile, Image.Name.Missile, 50, 50, 3, 15);
            //----Player Ship----
            GameSpriteManager.Add(GameSprite.Name.Ship, Image.Name.Ship, 500, 100, 50, 30, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));

            //---Explosions---
            GameSpriteManager.Add(GameSprite.Name.AlienExplosion, Image.Name.AlienExplosion, 50, 50, 33, 33);
            GameSpriteManager.Add(GameSprite.Name.ShipExplosion, Image.Name.ShipExplosionA, 50, 50, 55, 35);
            GameSpriteManager.Add(GameSprite.Name.SaucerExplosion, Image.Name.SaucerExplosion, 50, 50, 45, 35, new Azul.Color(1.0f, 0.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.BombExplosion, Image.Name.BombExplosion, 50, 50, 25, 25);
            GameSpriteManager.Add(GameSprite.Name.MissileExplosionRed, Image.Name.MissileExplosion, 50, 50, 20, 20, new Azul.Color(1.0f, 0.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.MissileExplosionGreen, Image.Name.MissileExplosion, 50, 50, 20, 20, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.MissileExplosionWhite, Image.Name.MissileExplosion, 50, 50, 20, 20);

            //----Bombs----
            GameSpriteManager.Add(GameSprite.Name.BombDagger, Image.Name.BombDagger, 50, 50, 10, 25);
            GameSpriteManager.Add(GameSprite.Name.BombZigZag, Image.Name.BombZigZag, 50, 50, 10, 25);
            GameSpriteManager.Add(GameSprite.Name.BombStraight, Image.Name.BombStraight, 50, 50, 10, 25);

            //----Shield----
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick, Image.Name.ShieldBrick, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick_LeftTop0, Image.Name.ShieldBrick_LeftTop0, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick_LeftTop1, Image.Name.ShieldBrick_LeftTop1, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick_LeftBottom, Image.Name.ShieldBrick_LeftBottom, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick_RightTop0, Image.Name.ShieldBrick_RightTop0, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick_RightTop1, Image.Name.ShieldBrick_RightTop1, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));
            GameSpriteManager.Add(GameSprite.Name.ShieldBrick_RightBottom, Image.Name.ShieldBrick_RightBottom, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));

            //----Ground----
            GameSpriteManager.Add(GameSprite.Name.Ground, Image.Name.ShieldBrick, 50, 50, SpaceInvaders.ScreenWidth - 10, 5, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f));

            //--------------------------------------------------------------------------
            //Create Scenes
            //--------------------------------------------------------------------------
            pHiScore      = 0;
            pPlayer1Score = 0;
            pPlayer2Score = 0;

            pSceneContext = new SceneContext();
        }
Exemple #14
0
 public override void Execute()
 {
     BombManager.DeactiveBomb(this.pBomb);
 }
 public override void Handle(AlienColumn pCol)
 {
     BombManager.SetState(BombManager.StateName.Ready, pCol);
     //Debug.WriteLine("BOMB READY STATE\n");
 }
Exemple #16
0
        public override void DropBomb(AlienColumn pCol)
        {
            BombManager.ActivateBomb(pCol);

            this.Handle(pCol);
        }
 public override void Execute(float deltaTime)
 {
     BombManager.Reset(this.pBomb);
 }
Exemple #18
0
 public override void Handle(AlienColumn pCol)
 {
     BombManager.SetState(BombManager.StateName.BombDropping, pCol);
     //Debug.WriteLine("BOMB DROPPING STATE\n");
 }