private void BackToInitial() { WaveServices.GetService <ScoreService>().RegisterScore(this.currentScore); InitialScene intialScene = null; ScreenTransition transition = new CoverTransition(TimeSpan.FromMilliseconds(500), CoverTransition.EffectOptions.FromTop); transition.EaseFunction = new CubicEase() { EasingMode = EasingMode.EaseInOut }; #if MAC intialScene = new InitialScene(); intialScene.Initialize(WaveServices.GraphicsDevice); WaveServices.ScreenContextManager.To(new ScreenContext(intialScene), transition); #else WaveBackgroundTask.Run(() => { intialScene = new InitialScene(); intialScene.Initialize(WaveServices.GraphicsDevice); }) .ContinueWith((t) => { WaveServices.ScreenContextManager.To(new ScreenContext(intialScene), transition); }); #endif }
private void TapToPlayTouchTap(object sender, GestureEventArgs e) { if (count == 0) { count++; GameScene gameScene = null; ScreenTransition transition = new CoverTransition(TimeSpan.FromMilliseconds(500), CoverTransition.EffectOptions.FromTop); transition.EaseFunction = new CubicEase() { EasingMode = EasingMode.EaseInOut }; this.loadingEntity.IsVisible = true; var animationService = WaveServices.GetService <AnimationService>(); animationService.CreatePulseAnimation(this.loadingEntity, 1000).Run(); #if MAC gameScene = new GameScene(); gameScene.Initialize(WaveServices.GraphicsDevice); WaveServices.ScreenContextManager.To(new ScreenContext(gameScene), transition); #else WaveBackgroundTask.Run(() => { gameScene = new GameScene(); gameScene.Initialize(WaveServices.GraphicsDevice); }) .ContinueWith((t) => { WaveServices.ScreenContextManager.To(new ScreenContext(gameScene), transition); }); #endif } }
protected override void Start() { base.Start(); this.StartAnimation(); WaveBackgroundTask.Run(() => { this.gameScene = new GameScene(); this.gameScene.Initialize(WaveServices.GraphicsDevice); Thread.Sleep(5000); }) .ContinueWith((t) => { this.EndAnimation(); }); }
private async void AsyncSceneLoad(object sender, GestureEventArgs e) { var sceneTask = WaveBackgroundTask.Run(() => { var heavyScene = new HeavyLoadScene(); heavyScene.Initialize(WaveServices.GraphicsDevice); return(heavyScene); }); await this.CreateLoopGameActionUntil(() => this.LoadingAnimation(this.asyncSceneLoadButton), () => sceneTask.IsCompleted).AsTask(); var scene = await sceneTask.ConfigureWaveAwait(WaveTaskContinueOn.Foreground); ScreenContext screenContext = new ScreenContext(scene); WaveServices.ScreenContextManager.To(screenContext); }
private void PreloadAndNavigateFoward(ScreenContext nextScreenConxtext, IGameAction transitionAction) { this.SetPerformingNavigationFlag(true); var scenesInitialized = false; var preloadAction = new Action(() => { this.PreloadGlobalAssets(); for (int i = 0; i < nextScreenConxtext.Count; i++) { var contextScene = nextScreenConxtext[i]; if (!contextScene.IsInitialized) { contextScene.Initialize(WaveServices.GraphicsDevice); } } scenesInitialized = true; }); #if UWP System.Threading.Tasks.Task.Factory.StartNew(preloadAction); #elif __UNIFIED__ preloadAction(); #else WaveBackgroundTask.Run(preloadAction); #endif this.CreateContextAnimation(false, WaveServices.ScreenContextManager.CurrentContext) .AndWaitCondition(() => scenesInitialized) .ContinueWith(transitionAction) .ContinueWith(this.CreateContextAnimation(true, nextScreenConxtext)) .ContinueWithAction(() => { this.SetPerformingNavigationFlag(false); }) .Run(); }