Esempio n. 1
0
        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
        }
Esempio n. 2
0
        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
            }
        }
Esempio n. 3
0
        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();
            });
        }
Esempio n. 4
0
        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();
        }