Пример #1
0
        override public void Execute(float deltaTime)
        {
            float value = pRandom.Next(10, 60);
            UFO   pUFO  = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 100, 515);

            ColPair pColPair = ColPairMan.Add(ColPair.Name.UFO_WallLeft, pUFO, this.pWallLeft);

            pColPair.Attach(new UFOWallLeftObserver());

            pColPair = ColPairMan.Add(ColPair.Name.UFO_WallRight, pUFO, this.pWallRight);
            pColPair.Attach(new UFOWallRightObserver());

            MissileGroup pMissile = (MissileGroup)GameObjectMan.Find(GameObject.Name.MissileGroup);

            pColPair = ColPairMan.Add(ColPair.Name.UFOMissile, pUFO, pMissile);
            pColPair.Attach(new RemoveUFOObserver());

            pUFO.ActivateCollisionSprite(this.pSB_Boxes);
            pUFO.ActivateGameSprite(this.pSB_Aliens);
            GameObjectMan.Attach(pUFO);

            Sound.Name pSoundName = Sound.Name.Uninitialized;
            switch (pRandom.Next(0, 1))
            {
            case (0):
                pSoundName = Sound.Name.UFOLow;
                break;

            case (1):
                pSoundName = Sound.Name.UFOHigh;
                break;
            }
            SoundMan.PlaySound(pSoundName);
            TimerMan.Add(TimeEvent.Name.UFO, this, value);
        }
Пример #2
0
        public static UFO ActivateUFO(bool isCollisionBoxActive)
        {
            Debug.WriteLine("UFO has been activated!");
            UFOManager ufoMan = UFOManager.GetInstance();

            PCSTree pcsTree = GameObjectManager.GetRootTree();

            Debug.Assert(pcsTree != null);

            UFOStrategy strat = new UFOMoveRight();
            float       x     = -10.0f;

            if (pRandom.Next(0, 2) == 0)
            {
                strat = new UFOMoveLeft();
                x     = 915.0f;
            }

            UFO pUFO = new UFO(GameObjectName.UFO, SpriteBaseName.UFO, strat, x, 905.0f);

            ufoMan.pUFO = pUFO;

            UFORoot     pUFORoot = (UFORoot)GameObjectManager.Find(GameObjectName.UFORoot);
            SpriteBatch sbAliens = SpriteBatchManager.Find(SpriteBatchName.Aliens);
            SpriteBatch sbBoxes  = SpriteBatchManager.Find(SpriteBatchName.Boxes);

            if (isCollisionBoxActive)
            {
                pUFO.ActivateCollisionSprite(sbBoxes);
            }
            pUFO.ActivateGameSprite(sbAliens);
            pcsTree.Insert(ufoMan.pUFO, pUFORoot);
            SetUFOActive(true);
            return(ufoMan.pUFO);
        }
Пример #3
0
        public void ActivateUFO()
        {
            SpriteBatch pSB_Boxes  = SpriteBatchMan.Find(SpriteBatch.Name.Boxes);
            SpriteBatch pSB_Aliens = SpriteBatchMan.Find(SpriteBatch.Name.Aliens);

            if (pUFOroot.GetDeltaMove() > 0)
            {
                this.pUFO = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 140, 700);
            }

            else
            {
                this.pUFO = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 600, 700);
            }

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

            pUFOroot.Add(pUFO);
        }
Пример #4
0
        private static UFO ActivateUFO(SndObserver pSnd)
        {
            UFOMan pUFOMan = UFOMan.PrivInstance();

            Debug.Assert(pUFOMan != null);

            UFO pUFO = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 690, 650, pSnd);

            pUFOMan.pUFO = pUFO;

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

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

            GameObject pUFORoot = GameObjectMan.Find(GameObject.Name.UFORoot);

            Debug.Assert(pUFORoot != null);

            pUFORoot.Add(pUFOMan.pUFO);

            return(pUFOMan.pUFO);
        }
Пример #5
0
        public override void Initialize()
        {
            ImageMan.Add(Image.Name.BlueAlien, Texture.Name.Aliens, new Azul.Rect(341, 337, 65, 64));
            ImageMan.Add(Image.Name.GreenAlien, Texture.Name.Aliens, new Azul.Rect(27, 337, 79, 64));
            ImageMan.Add(Image.Name.RedAlien, Texture.Name.Aliens, new Azul.Rect(647, 200, 72, 65));

            ImageMan.Add(Image.Name.UFO, Texture.Name.Aliens, new Azul.Rect(120, 489, 98, 49));
            ImageMan.Add(Image.Name.Ship, Texture.Name.Birds, new Azul.Rect(10, 93, 30, 18));

            ImageMan.Add(Image.Name.Brick, Texture.Name.Birds, new Azul.Rect(20, 210, 10, 5));
            ImageMan.Add(Image.Name.BrickLeft_Top0, Texture.Name.Birds, new Azul.Rect(15, 180, 10, 5));
            ImageMan.Add(Image.Name.BrickLeft_Top1, Texture.Name.Birds, new Azul.Rect(15, 185, 10, 5));
            ImageMan.Add(Image.Name.BrickLeft_Bottom, Texture.Name.Birds, new Azul.Rect(35, 215, 10, 5));
            ImageMan.Add(Image.Name.BrickRight_Top0, Texture.Name.Birds, new Azul.Rect(75, 180, 10, 5));
            ImageMan.Add(Image.Name.BrickRight_Top1, Texture.Name.Birds, new Azul.Rect(75, 185, 10, 5));
            ImageMan.Add(Image.Name.BrickRight_Bottom, Texture.Name.Birds, new Azul.Rect(55, 215, 10, 5));

            this.poSpriteBatchMan = new SpriteBatchMan(3, 1);
            SpriteBatchMan.SetActive(this.poSpriteBatchMan);

            this.poGameObjectMan = new GameObjectMan(10, 2);
            GameObjectMan.SetActive(this.poGameObjectMan);

            this.poFontMan = new FontMan();
            FontMan.SetActive(this.poFontMan);

            this.poInputMan = new InputMan();
            InputMan.SetActive(this.poInputMan);

            SpriteBatch pSB_Texts   = SpriteBatchMan.Add(SpriteBatch.Name.Texts, 100, true);
            SpriteBatch pSB_Shields = SpriteBatchMan.Add(SpriteBatch.Name.Shields, 100, true);
            SpriteBatch pSB_Aliens  = SpriteBatchMan.Add(SpriteBatch.Name.Aliens, 100, true);
            SpriteBatch pSB_Boxes   = SpriteBatchMan.Add(SpriteBatch.Name.Boxes, 100, false);

            GameSpriteMan.Add(GameSprite.Name.BlueAlien, Image.Name.BlueAlien, 100, 150, 30, 30);
            GameSpriteMan.Add(GameSprite.Name.RedAlien, Image.Name.RedAlien, 200, 150, 30, 30);
            GameSpriteMan.Add(GameSprite.Name.GreenAlien, Image.Name.GreenAlien, 300, 150, 30, 30);
            GameSpriteMan.Add(GameSprite.Name.UFO, Image.Name.UFO, 120, 489, 70, 25);
            GameSpriteMan.Add(GameSprite.Name.Ship, Image.Name.Ship, 500, 100, 60, 20);

            GameSpriteMan.Add(GameSprite.Name.Brick, Image.Name.Brick, 50, 25, 10, 5);
            GameSpriteMan.Add(GameSprite.Name.Brick_LeftTop0, Image.Name.BrickLeft_Top0, 50, 25, 10, 5);
            GameSpriteMan.Add(GameSprite.Name.Brick_LeftTop1, Image.Name.BrickLeft_Top1, 50, 25, 10, 5);
            GameSpriteMan.Add(GameSprite.Name.Brick_LeftBottom, Image.Name.BrickLeft_Bottom, 50, 25, 10, 5);
            GameSpriteMan.Add(GameSprite.Name.Brick_RightTop0, Image.Name.BrickRight_Top0, 50, 25, 10, 5);
            GameSpriteMan.Add(GameSprite.Name.Brick_RightTop1, Image.Name.BrickRight_Top1, 50, 25, 10, 5);
            GameSpriteMan.Add(GameSprite.Name.Brick_RightBottom, Image.Name.BrickRight_Bottom, 50, 25, 10, 5);

            AlienFactory aF       = new AlienFactory(SpriteBatch.Name.Aliens, SpriteBatch.Name.Boxes);
            Texture      pTexture = TextureMan.Add(Texture.Name.Consolas36pt, "Consolas36pt.tga");

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

            Font pFont = FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "Aliens", Glyph.Name.Consolas36pt, 100, 500);

            pFont.SetColor(1.0f, 1.0f, 1.0f);

            RedAlien redAlien = (RedAlien)aF.Create(GameObject.Name.RedAlien, AlienCategory.Type.Red, 300.0f, 200.0f);

            pFont = FontMan.Add(Font.Name.Instructions, SpriteBatch.Name.Texts, redAlien.GetPoints().ToString(), Glyph.Name.Consolas20pt, 375.0f, 200.0f);
            pFont.SetColor(0.60f, 0.60f, 0.60f);

            GreenAlien greenAlien = (GreenAlien)aF.Create(GameObject.Name.GreenAlien, AlienCategory.Type.Green, 300.0f, 275.0f);

            pFont = FontMan.Add(Font.Name.Instructions, SpriteBatch.Name.Texts, greenAlien.GetPoints().ToString(), Glyph.Name.Consolas20pt, 375.0f, 275.0f);
            pFont.SetColor(0.60f, 0.60f, 0.60f);

            BlueAlien blueAlien = (BlueAlien)aF.Create(GameObject.Name.BlueAlien, AlienCategory.Type.Blue, 300.0f, 350.0f);

            pFont = FontMan.Add(Font.Name.Instructions, SpriteBatch.Name.Texts, blueAlien.GetPoints().ToString(), Glyph.Name.Consolas20pt, 375.0f, 350.0f);
            pFont.SetColor(0.60f, 0.60f, 0.60f);

            UFO ufo = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 300.0f, 425.0f);

            ufo.ActivateGameSprite(pSB_Aliens);
            GameObjectMan.Attach(ufo);
            pFont = FontMan.Add(Font.Name.Instructions, SpriteBatch.Name.Texts, "?", Glyph.Name.Consolas20pt, 375.0f, 425.0f);
            pFont.SetColor(0.60f, 0.60f, 0.60f);

            pFont = FontMan.Add(Font.Name.Instructions, SpriteBatch.Name.Texts, "Back to Menu", Glyph.Name.Consolas20pt, 100, 100);
            pFont.SetColor(0.60f, 0.60f, 0.60f);

            InputSubject pInputSubject = InputMan.GetCursorSubject();

            pInputSubject.Attach(new HighlightHoverTextObserver(pFont));
            pInputSubject = InputMan.GetMouseLeftKeySubject();
            pInputSubject.Attach(new MenuChoiceObserver(pFont));
        }
Пример #6
0
        public override void Initialize()
        {
            this.name = SceneContext.Scene.Select;

            this.poSpriteBatchMan = new SpriteBatchMan(3, 1);
            SpriteBatchMan.SetActive(this.poSpriteBatchMan);

            this.poGameObjectMan = new GameObjectMan(3, 1);
            GameObjectMan.SetActive(this.poGameObjectMan);

            SpriteBatch pSB_Texts = this.poSpriteBatchMan.Add(SpriteBatch.Name.Texts, 100);

            TextureMan.Add(Texture.Name.Consolas36pt, "Consolas36pt.tga");
            GlyphMan.AddXml(Glyph.Name.Consolas36pt, "Consolas36pt.xml", Texture.Name.Consolas36pt);

            TextureMan.Add(Texture.Name.Consolas48pt, "Consolas48pt.tga");
            GlyphMan.AddXml(Glyph.Name.Consolas48pt, "Consolas48pt.xml", Texture.Name.Consolas48pt);

            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "SPACE INVADERS", Glyph.Name.Consolas48pt, 280, 480);
            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "PRESS <1> and <2> TO SWITCH PLAYERS", Glyph.Name.Consolas36pt, 100, 400);
            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "*SCORE ADVANCE TABLE*", Glyph.Name.Consolas36pt, 220, 350);
            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "? MYSTERY", Glyph.Name.Consolas36pt, 370, 300);
            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "30 POINTS", Glyph.Name.Consolas36pt, 370, 270);
            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "20 POINTS", Glyph.Name.Consolas36pt, 370, 240);
            FontMan.Add(Font.Name.Select, SpriteBatch.Name.Texts, "10 POINTS", Glyph.Name.Consolas36pt, 370, 210);


            SpriteBatch pSB_Aliens = this.poSpriteBatchMan.Add(SpriteBatch.Name.Aliens, 200);
            SpriteBatch pSB_Boxes  = this.poSpriteBatchMan.Add(SpriteBatch.Name.Boxes, 300);

            TextureMan.Add(Texture.Name.Aliens, "Invaders_0.tga");

            ImageMan.Add(Image.Name.SquidOpen, Texture.Name.Aliens, 616, 28, 112, 112);
            ImageMan.Add(Image.Name.CrabOpen, Texture.Name.Aliens, 321, 28, 155, 112);
            ImageMan.Add(Image.Name.OctopusOpen, Texture.Name.Aliens, 56, 28, 167, 112);
            ImageMan.Add(Image.Name.UFO, Texture.Name.Aliens, 83, 503, 225, 98);

            this.poGameSpriteMan = new GameSpriteMan(3, 1);
            GameSpriteMan.SetActive(this.poGameSpriteMan);

            GameSpriteMan.Add(GameSprite.Name.SquidOpen, Image.Name.SquidOpen, 50, 550, 25, 25);
            GameSpriteMan.Add(GameSprite.Name.CrabOpen, Image.Name.CrabOpen, 50, 510, 25, 25);
            GameSpriteMan.Add(GameSprite.Name.OctopusOpen, Image.Name.OctopusOpen, 50, 430, 25, 25);
            GameSpriteMan.Add(GameSprite.Name.UFO, Image.Name.UFO, 50, 500, 40, 18);

            // Aliens
            AlienFactory AF = new AlienFactory(SpriteBatch.Name.Aliens, SpriteBatch.Name.Boxes);

            GameObject pCol = AF.Create(GameObject.Name.AlienColumn, AlienCategory.Type.Column);

            GameObject pSquidObj = AF.Create(GameObject.Name.SquidAlien, AlienCategory.Type.Squid, 330, 270);

            pCol.Add(pSquidObj);

            GameObject pCrabObj = AF.Create(GameObject.Name.CrabAlien, AlienCategory.Type.Crab, 330, 240);

            pCol.Add(pCrabObj);

            GameObject pOctopusObj = AF.Create(GameObject.Name.OctopusAlien, AlienCategory.Type.Octopus, 330, 210);

            pCol.Add(pOctopusObj);

            GameObjectMan.Attach(pCol);

            // UFO
            UFORoot pUFORoot = new UFORoot(GameObject.Name.UFORoot, GameSprite.Name.NullObject, 0.0f, 0.0f);

            UFO pUFO = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 330, 300);

            pUFO.ActivateGameSprite(pSB_Aliens);

            pUFORoot.Add(pUFO);

            GameObjectMan.Attach(pUFORoot);

            FontMan.Add(Font.Name.ScoreText, SpriteBatch.Name.Texts, "HI-SCORE: ", Glyph.Name.Consolas36pt, 300, 150);
            pFontHighScore = FontMan.Add(Font.Name.HighScore, SpriteBatch.Name.Texts, "0000", Glyph.Name.Consolas36pt, 470, 150);
        }
Пример #7
0
        // strategy()
        override public void LoadContent()
        {
            SpriteBatchMan.Create(3, 1);
            TextureMan.Create(2, 1);
            GlyphMan.Create(3, 1);
            FontMan.Create(1, 1);
            ImageMan.Create(5, 2);
            GameSpriteMan.Create(4, 2);
            ProxySpriteMan.Create(10, 1);
            BoxSpriteMan.Create(3, 1);
            GameObjectMan.Create(3, 1);
            GhostGameObjectMan.Create(3, 1);

            //ImageMan.Create(5, 2);
            //GameSpriteMan.Create(4, 2);
            //ImageMan.Create(5, 2);
            //GameSpriteMan.Create(4, 2);
            //GameObjectMan.Create(3, 1);
            //ProxySpriteMan.Create(10, 1);


            TextureMan.Add(Texture.Name.Aliens, "newaliens.tga");
            Texture pTexture = TextureMan.Add(Texture.Name.Consolas20pt, "Consolas20pt.tga");

            FontMan.AddXml(Glyph.Name.Consolas20pt, "Consolas20pt.xml", Texture.Name.Consolas20pt);

            SpriteBatch pSB_Texts  = SpriteBatchMan.Add(SpriteBatch.Name.Texts);
            SpriteBatch pSB_Aliens = SpriteBatchMan.Add(SpriteBatch.Name.Aliens);

            // Font
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "SCORE<1>", Glyph.Name.Consolas20pt, 100, 730);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "HI-SCORE", Glyph.Name.Consolas20pt, 300, 730);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "SCORE<2>", Glyph.Name.Consolas20pt, 500, 730);
            FontMan.Add(Font.Name.Score1, SpriteBatch.Name.Texts, "0000", Glyph.Name.Consolas20pt, 100, 700);

            if (scoreHigh == null)
            {
                scoreHigh = "0000";
            }
            FontMan.Add(Font.Name.ScoreHigh, SpriteBatch.Name.Texts, scoreHigh, Glyph.Name.Consolas20pt, 300, 700);
            FontMan.Add(Font.Name.Score2, SpriteBatch.Name.Texts, "0000", Glyph.Name.Consolas20pt, 500, 700);

            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "PLAY", Glyph.Name.Consolas20pt, 320, 550);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "SPACE    INVADERS", Glyph.Name.Consolas20pt, 260, 500);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "PUSH <1> OR <2> PLAYERS BUTTON", Glyph.Name.Consolas20pt, 200, 450);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "*SCORE    ADVANCE    TABLE*", Glyph.Name.Consolas20pt, 220, 400);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "  =  200 POINTS", Glyph.Name.Consolas20pt, 270, 350);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "  =  30 POINTS", Glyph.Name.Consolas20pt, 270, 300);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "  =  20 POINTS", Glyph.Name.Consolas20pt, 270, 250);
            FontMan.Add(Font.Name.TestMessage, SpriteBatch.Name.Texts, "  =  10 POINTS", Glyph.Name.Consolas20pt, 270, 200);


            // Alien
            ImageMan.Add(Image.Name.SquidA, Texture.Name.Aliens, 547, 15, 250, 135);
            ImageMan.Add(Image.Name.CrabA, Texture.Name.Aliens, 281, 15, 250, 135);
            ImageMan.Add(Image.Name.OctopusA, Texture.Name.Aliens, 15, 15, 250, 135);
            ImageMan.Add(Image.Name.UFO, Texture.Name.Aliens, 80, 500, 230, 100);

            GameSpriteMan.Add(GameSprite.Name.Squid, Image.Name.SquidA, 100, 600, 35, 30, 255, 255, 255, 1);
            GameSpriteMan.Add(GameSprite.Name.Crab, Image.Name.CrabA, 100, 550, 35, 30, 255, 255, 255, 1);
            GameSpriteMan.Add(GameSprite.Name.Octopus, Image.Name.OctopusA, 100, 500, 35, 30, 255, 255, 255, 1);
            GameSpriteMan.Add(GameSprite.Name.UFO, Image.Name.UFO, 100, 500, 35, 30, 255, 0, 0, 1);

            GameObject pAlienGroup = new AlienGroup(GameObject.Name.AlienGroup, GameSprite.Name.NullObject, 100, 100);

            pAlienGroup.ActivateGameSprite(pSB_Aliens);

            GameObject pAlienColumn = new AlienGroup(GameObject.Name.AlienColumn, GameSprite.Name.NullObject, 100, 100);

            pAlienGroup.Add(pAlienColumn);
            pAlienColumn.ActivateGameSprite(pSB_Aliens);

            GameObject pSquid = new Squid(GameObject.Name.Squid, GameSprite.Name.Squid, 250, 300);

            pAlienColumn.Add(pSquid);
            pSquid.ActivateGameSprite(pSB_Aliens);

            GameObject pCrab = new Crab(GameObject.Name.Crab, GameSprite.Name.Crab, 250, 250);

            pAlienColumn.Add(pCrab);
            pCrab.ActivateGameSprite(pSB_Aliens);

            GameObject pOctopus = new Octopus(GameObject.Name.Octopus, GameSprite.Name.Octopus, 250, 200);

            pAlienColumn.Add(pOctopus);
            pOctopus.ActivateGameSprite(pSB_Aliens);

            UFO pUFO = new UFO(GameObject.Name.UFO, GameSprite.Name.UFO, 250, 350, null);

            pAlienColumn.Add(pUFO);
            pUFO.ActivateGameSprite(pSB_Aliens);

            GameObjectMan.Attach(pAlienGroup);


            // Input
            InputSubject pInputSubject;

            pInputSubject = InputMan.Get1Subject();
            pInputSubject.Attach(new StartGameObserver(1));

            pInputSubject = InputMan.Get2Subject();
            pInputSubject.Attach(new StartGameObserver(2));
        }