Пример #1
0
        protected override void LoadContent()
        {
            Fonts.LoadFonts(Content, "Fonts.xml");
            Sounds.LoadSounds(Content, "Sounds.xml");

            // Load Game Content
            startingSpriteBatch = new SpriteBatch(this.graphics.GraphicsDevice);

            // Get Screen Size
            int screenWidth  = this.Window.ClientBounds.Width;
            int screenHeight = this.Window.ClientBounds.Height;

            // Load Control Content
            TextPickerControl.LoadContent(Content);

            // Load Screen Content
            SplashScreen.LoadContent(Content);
            SetupScreen.LoadContent(Content);
            InstructionsScreen.LoadContent(Content);
            GameOverScreen.LoadContent(Content);
            LoadScreens();

            // Load Subsystem Contents
            SurvivorSubsystem.LoadContent(Content);
            ZombiesSubsystem.LoadContent(Content);
            CollectablesSubsystem.LoadContent(Content);
            AchievmentsSubsystem.LoadContent(Content);

            // Load Entity Contents
            HUD.LoadContent(Content, screenWidth, screenHeight);

            String saveFilePath = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "save.sav");

            if (File.Exists(saveFilePath))
            {
                FileStream     fileStream     = File.OpenRead(saveFilePath);
                XmlSerializer  fileSerializer = new XmlSerializer(typeof(GameSaveStruct));
                GameSaveStruct gameSaveStruct = (GameSaveStruct)fileSerializer.Deserialize(fileStream);
                fileStream.Close();
                File.Delete(saveFilePath);
                GameState = GameState.Playing;
                this.StartPlayingSavedGame(gameSaveStruct);
            }
            else
            {
                ResetToStarting(true);
            }

            base.LoadContent();
        }
        private GameSaveStruct GetGameSaveStruct()
        {
            GameSaveStruct gameSaveStruct = new GameSaveStruct()
            {
                PlayerOneSurvivorSprite = SurvivorSubsystem.PlayerOneSurvivorSprite.SaveStruct,
                ZombieSprites           = ZombiesSubsystem.ZombieSaveStructs(),
                Collectables            = CollectablesSubsystem.CollectableSaveStructs(),
                Options     = Options.OptionsSaveStruct,
                Stats       = Results.StatsSaveStruct,
                Achievments = AchievmentsSubsystem.AchievmentsSaveStruct,
                WaveTimer   = ZombiesSubsystem.WaveTimer
            };

            return(gameSaveStruct);
        }
        private void StartPlayingSavedGame(GameSaveStruct saveStruct)
        {
            this.Options = new GameOptions(saveStruct.Options);
            this.StartPlayingGame();

            SurvivorSubsystem.AddPlayerOneSurvivorSprite(new SurvivorSprite(this, saveStruct.PlayerOneSurvivorSprite));
            foreach (ZombieSpriteSaveStruct zombieSpriteSaveStruct in saveStruct.ZombieSprites)
            {
                ZombieSprite zombieSprite = new ZombieSprite(this, zombieSpriteSaveStruct);
                ZombiesSubsystem.AddZombieSprite(zombieSprite);
            }

            foreach (CollectableSaveStruct collectableSaveStruct in saveStruct.Collectables)
            {
                CollectablesSubsystem.AddCollectable(new Collectable(this, collectableSaveStruct));
                switch (collectableSaveStruct.CollectableEntityType)
                {
                case CollectableEntityType.Health: CollectablesSubsystem.HealthCollectablesSpawned++; break;

                case CollectableEntityType.Gasoline: CollectablesSubsystem.GasolineCollectablesSpawned++; break;

                case CollectableEntityType.PistolAmmo: CollectablesSubsystem.PistolAmmoCollectablesSpawned++; break;

                case CollectableEntityType.ShotgunAmmo: CollectablesSubsystem.ShotgunAmmoCollectablesSpawned++; break;

                case CollectableEntityType.Energy: CollectablesSubsystem.EnergyCollectablesSpawned++; break;

                default: break;
                }
            }

            // Reset Zombie Subsystem
            ZombiesSubsystem.WaveTimer = saveStruct.WaveTimer;

            AchievmentsSubsystem.Initialize(saveStruct.Achievments);

            this.Results = new GameResults(saveStruct.Stats);

            this.GamePaused = true;
        }
        private void StartPlayingSavedGame(GameSaveStruct saveStruct)
        {
            this.Options = new GameOptions(saveStruct.Options);
            this.StartPlayingGame();

            SurvivorSubsystem.AddPlayerOneSurvivorSprite(new SurvivorSprite(this, saveStruct.PlayerOneSurvivorSprite));
            foreach (ZombieSpriteSaveStruct zombieSpriteSaveStruct in saveStruct.ZombieSprites) {
                ZombieSprite zombieSprite = new ZombieSprite(this, zombieSpriteSaveStruct);
                ZombiesSubsystem.AddZombieSprite(zombieSprite);
            }

            foreach (CollectableSaveStruct collectableSaveStruct in saveStruct.Collectables) {
                CollectablesSubsystem.AddCollectable(new Collectable(this, collectableSaveStruct));
                switch (collectableSaveStruct.CollectableEntityType) {
                    case CollectableEntityType.Health: CollectablesSubsystem.HealthCollectablesSpawned++; break;
                    case CollectableEntityType.Gasoline: CollectablesSubsystem.GasolineCollectablesSpawned++; break;
                    case CollectableEntityType.PistolAmmo: CollectablesSubsystem.PistolAmmoCollectablesSpawned++; break;
                    case CollectableEntityType.ShotgunAmmo: CollectablesSubsystem.ShotgunAmmoCollectablesSpawned++; break;
                    case CollectableEntityType.Energy: CollectablesSubsystem.EnergyCollectablesSpawned++; break;
                    default: break;
                }
            }

            // Reset Zombie Subsystem
            ZombiesSubsystem.WaveTimer = saveStruct.WaveTimer;

            AchievmentsSubsystem.Initialize(saveStruct.Achievments);

            this.Results = new GameResults(saveStruct.Stats);

            this.GamePaused = true;
        }
 private GameSaveStruct GetGameSaveStruct()
 {
     GameSaveStruct gameSaveStruct = new GameSaveStruct() {
         PlayerOneSurvivorSprite = SurvivorSubsystem.PlayerOneSurvivorSprite.SaveStruct,
         ZombieSprites = ZombiesSubsystem.ZombieSaveStructs(),
         Collectables = CollectablesSubsystem.CollectableSaveStructs(),
         Options = Options.OptionsSaveStruct,
         Stats = Results.StatsSaveStruct,
         Achievments = AchievmentsSubsystem.AchievmentsSaveStruct,
         WaveTimer = ZombiesSubsystem.WaveTimer
     };
     return gameSaveStruct;
 }