Exemplo n.º 1
0
        public LevelManager(Texture2D texture, Vector2 position, Vector2 screen, NebulaGame aGame, Level aLevel,
            List<Sprite> aSpritesList, List<Sprite> aPlatformsList, SpriteFont aFont, Hero anHero,
            Screen aInstructions, Screen aGameOverScreen, List<Screen> aVictoryScreenList, Screen aCutScene, TimeTravelManager aTimeTravelManager, SoundEffect backgroundMusic)
            : base(texture, position, screen, aGame, aPlatformsList, anHero)
        {
            myTexture = texture;
            myPosition = position;
            myScreenSize = screen;
            myGame = aGame;
            myLevel = aLevel;
            spritesList = aSpritesList;

            //Music for the level
            LaserSoundEffect = myGame.Content.Load<SoundEffect>("LaserSoundEffect");
            BackwardsLaserSoundEffect = myGame.Content.Load<SoundEffect>("LaserSoundEffectBackwards");
            SoundEffect GameOverSound = myGame.Content.Load<SoundEffect>("breathofdeath");
            GameOverSoundInstance = GameOverSound.CreateInstance();
            SoundEffect BackgroundMusic = backgroundMusic;
            LevelMusic = BackgroundMusic.CreateInstance();
            LevelMusic.IsLooped = true;
            SoundEffect StageClear = myGame.Content.Load<SoundEffect>("Stage1-soundclear");
            StageClearInstance = StageClear.CreateInstance();

            BoostBar[0] = new Sprite(myGame.Content.Load<Texture2D>("boost-bar1"), new Vector2(0, 0));
            BoostBar[1] = new Sprite(myGame.Content.Load<Texture2D>("boost-bar2"), new Vector2(0, 0));
            BoostBar[2] = new Sprite(myGame.Content.Load<Texture2D>("boost-bar3"), new Vector2(0, 0));
            BoostBar[3] = new Sprite(myGame.Content.Load<Texture2D>("boost-bar4"), new Vector2(0, 0));
            BoostBar[4] = new Sprite(myGame.Content.Load<Texture2D>("boost-bar5"), new Vector2(0, 0));

            foreach (Sprite s in BoostBar)
            {
                myLevel.AddSprite(s);
            }

            GameOverScreen = aGameOverScreen;
            VictoryScreenList = aVictoryScreenList;
            myCutScene = aCutScene;
            myTimeTravelManager = aTimeTravelManager;

            for (int i = 0; i < aPlatformsList.Count; i++)
            {
                platformsList.Add(aPlatformsList[i]);
            }

            // anHero.myPosition = new Vector2(xSL, ySL/2 + ySL/4);

            myPosition.Y = 0;
            //  myScreenSize.Y - myTexture.Height * 2; ;

            myFont = aFont;
            InstructionScreen = aInstructions;

            //should we pass these in as indivdual items??
            setUpSprites((Platform)platformsList[0], (Hero)spritesList[0], (HeroLaser)spritesList[1],
                (Enemy)spritesList[2], (EnemyLaser)spritesList[3]);

            EnemiesList.Add(aEnemy);

            myState = new GameState(this);
            SetUpInput2();
        }