protected override void Initialize()
        {
            m_SpriteBashesMgr = new SpriteBashesManager(this);
            m_SpriteBatch     = new SpriteBatch(GraphicsDevice);
            m_SpriteBashesMgr.AddSpriteBash("Game", m_SpriteBatch);
            this.Window.Title = "SpaceInvaders!!";
            this.Components.Add(new BackGround(this));
            SpaceShip spaceShip = new SpaceShip1(this, 0);

            m_SpaceShips.Add(spaceShip);
            this.Components.Add(spaceShip);
            spaceShip.Disposed += spaceShip_Disposed;
            spaceShip           = new SpaceShip2(this, 1);
            m_SpaceShips.Add(spaceShip);
            this.Components.Add(m_SpaceShips[1]);
            spaceShip.Disposed            += spaceShip_Disposed;
            m_MotherShipInTheGame          = false;
            m_GameOver                     = false;
            m_EnemiesMatrix                = new EnemiesMatrix(this);
            m_EnemiesMatrix.Disposed      += enemiesMatrix_Disposed;
            m_EnemiesMatrix.ReachedBottom += enemiesMatrix_Disposed;
            m_EnemiesMatrix.Position       = m_GameManager.MatStartPosition;
            this.Components.Add(m_EnemiesMatrix);
            this.Components.Add(new ScoreBoard(this));
            this.Components.Add(new SoulsBoard(this));
            this.Components.Add(new Barriers(this));
            base.Initialize();
        }
        private void moveLevel()
        {
            m_CurrentLevel++;

            SpaceInvadersServices.ClearComponents <Enemy>(this);
            SpaceInvadersServices.ClearComponents <Barrier>(this);
            SpaceInvadersServices.ClearComponents <Bullet>(this);
            EnemiesMatrix enemyMatrix  = SpaceInvadersServices.GetEnemeiesMatrixComponent(this);
            BarrierGroup  barrierGroup = SpaceInvadersServices.GetBarrierGroupComponent(this);

            enemyMatrix.Initialize();
            barrierGroup.Initialize();
            SpaceInvadersServices.ChangeBarriersGroupVerticalPosition(this, barrierGroup);

            int state = m_CurrentLevel % 5;

            if (state >= 2 && state <= 5)
            {
                enemyMatrix.AddEnemiesColumn();
                enemyMatrix.IncraseEnemiesRandomShotting();
                enemyMatrix.AddPointsForEnemyKilling(30);
                barrierGroup.StartJumpingBarriers();
                barrierGroup.Speedup(0.05f);
                if (state == 2)
                {
                    barrierGroup.ChangeToDefaultJumpingSpeed();
                }
            }
            else
            {
                barrierGroup.StopJumpingBarriers();
            }

            this.ScreensManager.SetCurrentScreen(new MoveStageScreen(this.Game, m_CurrentLevel));
        }
        public static EnemiesMatrix GetEnemeiesMatrixComponent(GameScreen i_GameScreen)
        {
            EnemiesMatrix enemiesMatrix = null;

            foreach (GameComponent component in i_GameScreen)
            {
                enemiesMatrix = component as EnemiesMatrix;
                if (enemiesMatrix != null)
                {
                    break;
                }
            }

            return(enemiesMatrix);
        }
        public override void Initialize()
        {
            initilizeOnFirstRun();
            SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.MotherShip);
            SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.SpaceBackground);
            EnemiesMatrix enemiesMatrix = new EnemiesMatrix(this);
            BarrierGroup  barrierGroup  = new BarrierGroup(this);

            m_MultiPlayerConfiguration = SpaceInvadersServices.GetMultiPlayerConfiguration(this.Game);
            m_MultiPlayerConfiguration.CreatePlayers(this);
            m_WonLevelSound = SoundFactory.CreateSound(this, SoundFactory.eSoundType.LevelWin);
            m_GameOverSound = SoundFactory.CreateSound(this, SoundFactory.eSoundType.GameOver);
            this.Add(enemiesMatrix);
            this.Add(barrierGroup);
            base.Initialize();
            SpaceInvadersServices.ChangeBarriersGroupVerticalPosition(this, barrierGroup);
        }
Example #5
0
        /// <summary>
        /// Set battle field by current level.
        /// </summary>
        private void setBattleField()
        {
            m_mothership = new Mothership(this);
            AddComponents(m_mothership);
            int   fieldLevel            = (m_level - 1) % 4;
            float enemiesJumpsForSecond = 2;
            int   enemiesRows           = 5;
            int   enemiesColumns        = 9 + fieldLevel;

            m_enemies = new EnemiesMatrix(this, enemiesColumns, enemiesRows, enemiesJumpsForSecond);
            m_enemies.AllEnemiesDead += nextStage;
            m_enemies.ArrivedMaxY    += stageFailed;
            AddComponents(m_enemies);
            m_barriers = new BarriersArray(this, 4, fieldLevel);
            AddComponents(m_barriers);
            if (fieldLevel == 0)
            {
                Enemy.ResetScores();
            }
        }