コード例 #1
0
        //Grid Observer only worryies about moving the grid back and forth and down
        public override void Notify()
        {
            float movement;
            //Debug.WriteLine("Grid_Observer: {0} {1}", this.pSubject.pObjA, this.pSubject.pObjB);

            AlienGroup pGrid = (AlienGroup)this.pSubject.pObjA;

            WallCategory pWall = (WallCategory)this.pSubject.pObjB;

            if (pWall.GetCategoryType() == WallCategory.Type.Right)
            {
                //BAD HACK FIX LATER
                movement = pGrid.GetDeltaMove() * -1.0f;
                pGrid.SetDeltaMove(movement);
                pGrid.MoveAcross();
                pGrid.MoveDown();
            }

            else if (pWall.GetCategoryType() == WallCategory.Type.Left)
            {
                movement = pGrid.GetDeltaMove() * -1.0f;
                pGrid.SetDeltaMove(movement);
                pGrid.MoveAcross();
                pGrid.MoveDown();
            }

            else
            {
                //Bottom Wall hit, move aliens up and reset Waves before Game Over
                SpaceInvaders pGame  = GameMan.GetGame();
                GameState     pState = pGame.GetCurrentState();

                if (pState.GetStateName() == GameMan.State.InGame)
                {
                    InGameState pLvl1 = (InGameState)pState;
                    pLvl1.SetStateToggle(false);

                    TimerMan.Add(TimeEvent.Name.GameStateChange, new GameStateChange(false), 2.0f);
                }

                else if (pState.GetStateName() == GameMan.State.LVL2)
                {
                    InGameStateLV2 pLvl2 = (InGameStateLV2)pState;
                    pLvl2.SetStateToggle(false);

                    TimerMan.Add(TimeEvent.Name.GameStateChange, new GameStateChange(false), 2.0f);
                }
            }
        }
コード例 #2
0
ファイル: MoveGrid.cs プロジェクト: ramjam1215/SpaceInvaders
        public override void Execute(float deltaTime)
        {
            AlienGroup pGrid = GetComposite();

            pGrid.MoveAcross();

            //sound 1 at 500+
            if (pGrid.y >= 500)
            {
                pSndEngine.SoundVolume = 0.2f;
                pSndEngine.Play2D("fastinvader1.wav");
            }

            //sound 2 at 499 - 400
            else if (pGrid.y < 500 && pGrid.y >= 400)
            {
                pSndEngine.SoundVolume = 0.2f;
                pSndEngine.Play2D("fastinvader2.wav");
            }

            //sound 3 at 399 - 300
            else if (pGrid.y < 400 && pGrid.y >= 300)
            {
                pSndEngine.SoundVolume = 0.2f;
                pSndEngine.Play2D("fastinvader3.wav");
            }

            //sound 4 at 299-0
            else if (pGrid.y < 300)
            {
                pSndEngine.SoundVolume = 0.2f;
                pSndEngine.Play2D("fastinvader4.wav");
            }


            TimerMan.Add(TimeEvent.Name.MoveGrid, this, deltaTime);
        }