Пример #1
0
        public void LoadContent(IContentLoader provider)
        {
            Select = provider.Load <SoundEffect>(@"Audio/SE/select");
            Choose = provider.Load <SoundEffect>(@"Audio/SE/choose");

            _stateManager = new GameStateManager();

            // Screens
            TitleScreen = new TitleScreen(viewport, _stateManager, Select, Choose, InputHandler);
            contentBasedParts.Add(TitleScreen);

            GameConfigurationScreen = new GameConfigurationScreen(viewport, _stateManager);
            GameplayScreen          = new GameplayScreen(viewport, _stateManager, Camera); // .DisposeWith(instanceDisposer);
            GameplayScreen.Initialize();
            contentBasedParts.Add(GameplayScreen);

            LeaderboardScreen    = new LeaderboardScreen(viewport, _stateManager);
            ImprovementScreen    = new ImprovementScreen(viewport, _stateManager, Select, Choose);
            GameOverScreen       = new GameOverScreen(viewport, _stateManager);
            OptionsScreen        = new OptionsScreen(viewport, _stateManager, pixel, Select);
            KeyboardInputsScreen = new KeyboardInputsScreen(viewport, _stateManager);
            GamepadInputsScreen  = new GamepadInputsScreen(viewport, _stateManager);

            _stateManager.AddScreens(GameOverScreen, OptionsScreen, TitleScreen, GameplayScreen, ImprovementScreen);

            _stateManager.ComponentAdded += (s, arg) =>
            {
                updatableParts.Add(arg);
                drawableParts.Add(arg);
            };
            _stateManager.ComponentRemoved += (s, arg) =>
            {
                updatableParts.Remove(arg);
                drawableParts.Remove(arg);
            };

            _stateManager.ChangeState(GameStateManager.State.TitleScreen);


            foreach (var item in contentBasedParts)
            {
                item.LoadContent(provider);
            }

            foreach (var item in ContentBasedParts)
            {
                item.LoadContent(provider);
            }
        }