private void LoadLevelByIndex(int LevelIndex) { this._currentLevelIndex = LevelIndex; this._currentLevelScreen = new GameLevelPhysicsScreen(Assets.Levels[LevelIndex], LevelIndex); this._currentLevelScreen.OnNextLevel += (int CurrentLevelIndex) => { if (CurrentLevelIndex == Assets.Levels.Count - 1) CurrentLevelIndex = -1; LoadLevelByIndex(CurrentLevelIndex + 1); }; ScreenManager.AddScreen(this._currentLevelScreen, null); }
public void ResumeLevelFromMemoryData() { this._currentLevelIndex = _resumeStateData.CurrentLevel; this._currentLevelScreen = new GameLevelPhysicsScreen( Assets.Levels[_resumeStateData.CurrentLevel], _resumeStateData.CurrentLevel, _resumeStateData.CameraPosition, _resumeStateData.BallPosition, _resumeStateData.DistanceTravelled, _resumeStateData.DiamondsCollected, _resumeStateData.BackgroundPosition); this._currentLevelScreen.OnNextLevel += (int CurrentLevelIndex) => { LoadLevelByIndex(CurrentLevelIndex + 1); }; ScreenManager.AddScreen(this._currentLevelScreen, null); //Show Loading Screen to give user sometime to recover his mind ScreenManager.AddScreen(new LoadingScreen(), null); }