Exemplo n.º 1
0
 public void setRefLevel(SpectrumEnums.Levels level)
 {
     refLevel = level;
     Spectrum.lastLevelInGame = level;
 }
Exemplo n.º 2
0
 /*
  * Saves current level to save file
  * TODO check, that we only save if currentLevel is higher than lastsavedLevel (load)
  */
 private void Save()
 {
     using (Stream stream = storageContainer.CreateFile(filename))
     {
         saveGameData.lastSavedLevel = currentLevel;
         loadedLevel = currentLevel;
         XmlSerializer serializer = new XmlSerializer(typeof(SaveGameData));
         serializer.Serialize(stream, saveGameData);
         saveFileExists = true;
     }
 }
Exemplo n.º 3
0
        public void loadLevel(SpectrumEnums.Levels level)
        {
            currentLevel = level;
            Spectrum.lastPlayedLevel = level;
            models.Add(new SkySphere(skySphereModel, game, ((Spectrum)Game).camera, this));
            ((Spectrum)game).getCurrentActFromCurrentLevel();
            levelCreator.loadLevel(currentLevel);
            mapResolution = levelCreator.getCurrentMapResolution();
            ((Spectrum)game).getCurrentActFromCurrentLevel();
            ((Spectrum)game).soundManager.playMusic();
            Vector3 startPosition = levelCreator.getStartPosition();
            Vector3 startDirection = Vector3.Zero;
            Vector3 startUp = Vector3.Zero;
            enemies = levelCreator.getEnemies();
            countLevelInk();

            Vector3 dim = levelCreator.getCurrentMapResolution();
            OctTree octree = new OctTree(-2, -2, -2, (dim.Z * 2) + 2, (dim.Y * 2) + 2, (dim.X * 2) + 2);
            foreach(BasicCube cube in worldMap)
            {
                octree.Insert(cube);
            }

            foreach (Googoo enemy in enemies)
            {
                enemy.setAStar(worldMap, mapResolution);
                enemy.setOctTree(octree);
                enemy.InitializePathfinding();
            }

            player = new Bubble(bubbleModel, game, ((Spectrum)Game).camera, octree, startPosition, startDirection, startUp, worldMap, screenManager);
            player.setLives(levelCreator.getLivesInLevel());
            models.Add(player);
        }
Exemplo n.º 4
0
 /*
  * Loads current level from save file
  */
 private void Load()
 {
     if (storageContainer.FileExists(filename))
     {
         Stream stream = storageContainer.OpenFile(filename, FileMode.Open);
         XmlSerializer serializer = new XmlSerializer(typeof(SaveGameData));
         SaveGameData saveData = (SaveGameData)serializer.Deserialize(stream);
         stream.Close();
         loadedLevel = saveData.lastSavedLevel;
         lastPlayedLevel = loadedLevel;
         saveFileExists = true;
     }
     else
     {
         saveFileExists = false;
     }
 }
Exemplo n.º 5
0
 /*
  * Delete existing save file
  */
 private void DeleteExisting()
 {
     if (storageContainer.FileExists(filename))
     {
         storageContainer.DeleteFile(filename);
         saveFileExists = false;
         loadedLevel = SpectrumEnums.Levels.LevelP_0;
     }
 }
Exemplo n.º 6
0
        /*
         * Main Update method
         * handles all important updates such as
         * mouse state, screenManger update, saving/loading/deleting
         */
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            //Master key, unlock all level!
            if (Keyboard.GetState().IsKeyDown(Keys.M))
            {
                currentLevel = SpectrumEnums.Levels.LevelE_0;
            }

            currentMouseState = Mouse.GetState();
            GameStateDependingUpdates();
            time = float.Parse(gameTime.ElapsedGameTime.TotalMilliseconds.ToString()) / 1000;
            modelManager.buttonHandler.Update(gameTime);

            if (lastClickedPositon != null)
            {
                particleEngineBubbles.emitterLocation = lastClickedPositon;
                particleEngineBubbles.UpdateBubbles();

                particleEngineBigBubbles.emitterLocation = new Vector2(680, 180);
                particleEngineBigBubbles.UpdateBigBubbles();

            }
            UpdateCursor();
            previousMouseState = currentMouseState;

            if (currentPP == SpectrumEnums.PostProcessing.Mud)
            {
                mudParticleEngine.Update();
            }

            UpdateSavingLoadingOrDeleting(saveLoadOrDelete);
            gameAnalytics.Update();
            base.Update(gameTime);
        }
Exemplo n.º 7
0
        /*
         * Updates particle Engines and and gamestates.
         */
        protected void GameStateDependingUpdates()
        {
            currentKeyState = Keyboard.GetState();

            switch (currentGameState)
            {
                case SpectrumEnums.GameState.Start:
                    lastPlayedLevel = loadedLevel;
                    currentLevel = loadedLevel;
                    getCurrentActFromCurrentLevel();
                    if (currentKeyState.GetPressedKeys().Length > 0 || currentMouseState.LeftButton == ButtonState.Pressed
                        || currentMouseState.MiddleButton == ButtonState.Pressed || currentMouseState.RightButton == ButtonState.Pressed)
                    {
                        Spectrum.currentGameState = SpectrumEnums.GameState.MainMenu;
                    }
                    break;
                case SpectrumEnums.GameState.MainMenu:
                    particleEngineBigBubbles.drawParticles = true;
                    getCurrentActFromCurrentLevel();
                    break;
                case SpectrumEnums.GameState.LevelSelection:
                    particleEngineBigBubbles.drawParticles = false;
                    particleEngineBigBubbles.PopAllBubbles();
                    break;
                case SpectrumEnums.GameState.SettingsMenu:
                    particleEngineBigBubbles.drawParticles = false;
                    particleEngineBigBubbles.PopAllBubbles();
                    break;
                case SpectrumEnums.GameState.InGame:
                    particleEngineBigBubbles.drawParticles = false;
                    particleEngineBigBubbles.PopAllBubbles();
                    break;
                case SpectrumEnums.GameState.GameOver:
                    if (currentKeyState.GetPressedKeys().Length > 0)
                    {
                        Spectrum.currentGameState = SpectrumEnums.GameState.MainMenu;
                    }
                    break;
            }
        }
Exemplo n.º 8
0
 /*
  * Starts deleting process
  */
 public void deleteSaveFile()
 {
     if (savingState == SpectrumEnums.SavingState.NotSaving)
     {
         savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer;
         saveLoadOrDelete = SpectrumEnums.SaveLoadOrDelete.delete;
         currentLevel = SpectrumEnums.Levels.LevelP_0;
         lastPlayedLevel = currentLevel;
     }
 }