Beispiel #1
0
 public SpaceShip(GameStructure i_Game, ePlayerNumber i_PlayerNumber, string i_AssteName, SpaceShipsManager i_SpaceShipManager) : base(i_AssteName, i_Game)
 {
     SpaceShipManager  = i_SpaceShipManager;
     Bullets           = new List <Bullet>();
     ScoreAsText       = new TextAsSprite(i_Game);
     m_PlayerNumber    = i_PlayerNumber;
     Score             = 0;
     m_Speed           = 145;
     m_AssteName       = i_AssteName;
     IsShootableActive = true;
     m_SpaceShipSouls  = new List <Sprite>();
     initSouls();
     m_ShootSound = SoundFactoryMethod.CreateSound(i_Game, eSoundName.SSGunShot);
     m_LifeDie    = SoundFactoryMethod.CreateSound(Game as GameStructure, eSoundName.LifeDie);
 }
        public override void Initialize()
        {
            base.Initialize();
            Background = new Background(Game, k_AssteNameForBackground, 1)
            {
                DrawOrder = int.MaxValue
            };
            if (m_CurrentLevel == 1)
            {
                m_SpaceShipsManager = new SpaceShipsManager(GameStructure, this)
                {
                    ShouldIDispose = false
                };
                m_SpaceShipsManager.NotifiyGameOver += GameOver;
                Add(m_SpaceShipsManager);
            }
            else
            {
                Add(m_SpaceShipsManager);
            }
            m_MotherShip = new EnemyMotherShip(GameStructure)
            {
                GameScreen = this
            };
            m_enemyMatrixManager = new EnemyMatrixManager(GameStructure, this)
            {
                Rows = m_Rows, Cols = m_Coll, ExtraEnemyPointsForLevel = m_ExtraEnemyPointsForLevel, MaxNumOfActiveBulletsForEnemy = m_MaxNumOfActiveBulletsForEnemy
            };
            m_BarricadeManager = new BarricadeManager(GameStructure, this)
            {
                Velocity = m_BarricadeVelocity, DrawOrder = int.MinValue
            };
            m_MotherShip.WhenIDie += m_SpaceShipsManager.onWhenMotherShipDie;
            m_enemyMatrixManager.NotifyEnemyDiedToGameManager += m_SpaceShipsManager.onWhenEnemyDie;
            m_enemyMatrixManager.NotifyAllEnemysAreDead       += goToNextLevel;
            m_enemyMatrixManager.NotifyGameOver += GameOver;

            Add(m_MotherShip);
            Add(m_enemyMatrixManager);
            Add(m_BarricadeManager);
            Add(Background);
        }