Ejemplo n.º 1
0
        public override void LoadContent()
        {
            _missileTexture   = LoadTexture(MissileTexture);
            _exhaustTexture   = LoadTexture(ExhaustTexture);
            _bulletTexture    = LoadTexture(BulletTexture);
            _explosionTexture = LoadTexture(ExplosionTexture);
            _chopperTexture   = LoadTexture(ChopperTexture);

            _playerSprite       = new PlayerSprite(LoadTexture(PlayerFighter));
            _livesText          = new LivesText(LoadFont(TextFont));
            _livesText.NbLives  = StartingPlayerLives;
            _livesText.Position = new Vector2(10.0f, 690.0f);
            AddGameObject(_livesText);

            _levelStartEndText = new GameOverText(LoadFont(GameOverFont));

            var background = new TerrainBackground(LoadTexture(BackgroundTexture), SCOLLING_SPEED);

            background.zIndex = -100;
            AddGameObject(background);

            // load sound effects and register in the sound manager
            var bulletSound  = LoadSound(BulletSound);
            var missileSound = LoadSound(MissileSound);

            _soundManager.RegisterSound(new GameplayEvents.PlayerShootsBullets(), bulletSound);
            _soundManager.RegisterSound(new GameplayEvents.PlayerShootsMissile(), missileSound, 0.4f, -0.2f, 0.0f);

            // load soundtracks into sound manager
            var track1 = LoadSound(Soundtrack1).CreateInstance();
            var track2 = LoadSound(Soundtrack2).CreateInstance();

            _soundManager.SetSoundtrack(new List <SoundEffectInstance>()
            {
                track1, track2
            });

            _chopperGenerator = new ChopperGenerator(_chopperTexture, AddChopper);

            var levelReader = new LevelReader(_viewportWidth);

            _level = new Level(levelReader);

            _level.OnGenerateEnemies += _level_OnGenerateEnemies;
            _level.OnGenerateTurret  += _level_OnGenerateTurret;
            _level.OnLevelStart      += _level_OnLevelStart;
            _level.OnLevelEnd        += _level_OnLevelEnd;
            _level.OnLevelNoRowEvent += _level_OnLevelNoRowEvent;

            ResetGame();
        }
Ejemplo n.º 2
0
        private void ResetGame()
        {
            if (_chopperGenerator != null)
            {
                _chopperGenerator.StopGenerating();
            }

            foreach (var bullet in _bulletList)
            {
                RemoveGameObject(bullet);
            }

            foreach (var missile in _missileList)
            {
                RemoveGameObject(missile);
            }

            foreach (var chopper in _enemyList)
            {
                RemoveGameObject(chopper);
            }

            foreach (var explosion in _explosionList)
            {
                RemoveGameObject(explosion);
            }

            _bulletList    = new List <BulletSprite>();
            _missileList   = new List <MissileSprite>();
            _explosionList = new List <ExplosionEmitter>();
            _enemyList     = new List <ChopperSprite>();

            _chopperGenerator = new ChopperGenerator(_chopperTexture, 4, AddChopper);
            _chopperGenerator.GenerateChoppers();

            AddGameObject(_playerSprite);

            // position the player in the middle of the screen, at the bottom, leaving a slight gap at the bottom
            var playerXPos = _viewportWidth / 2 - _playerSprite.Width / 2;
            var playerYPos = _viewportHeight - _playerSprite.Height - 30;

            _playerSprite.Position = new Vector2(playerXPos, playerYPos);

            _playerDead = false;
        }