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(); WaveServices.TaskScheduler.CreateTask(() => { gameScene = new GameScene(); gameScene.Initialize(WaveServices.GraphicsDevice); }) .ContinueWith(() => { WaveServices.ScreenContextManager.To(new ScreenContext(gameScene), transition); }); } }
/// <summary> /// Easy access to create a new <see cref="CoverTransition"/>. /// </summary> /// <param name="duration">The duration.</param> /// <param name="effect">The effect.</param> /// <returns>A new instance of CoverTransition.</returns> public static ScreenTransition Cover(TimeSpan duration, CoverTransition.EffectOptions effect) { return new CoverTransition(duration, effect); }
/// <summary> /// Changes the scene state. /// </summary> /// <param name="state">The state.</param> public void SetState(GameSceneStates state) { var previusState = this.CurrentState; this.CurrentState = state; switch (state) { case GameSceneStates.Intro: this.currentScoreTB.IsVisible = false; foreach (var obstacle in this.EntityManager.FindAllByTag("OBSTACLE")) { var obstaclePair = (ObstaclePair)obstacle; obstaclePair.Entity.Enabled = false; } this.EntityManager.Find("kite") .FindComponent<KiteBehavior>() .SetState(KiteBehavior.KiteStates.TakeOff); break; case GameSceneStates.Gameplay: this.currentScoreTB.IsVisible = true; this.CurrentScore = 0; this.EntityManager.Find("kite") .FindComponent<KiteBehavior>() .SetState(KiteBehavior.KiteStates.Gameplay); this.ResetScene(previusState != GameSceneStates.Intro); this.SetScrollEnable(true); break; case GameSceneStates.Crash: // Crash Effect this.crashEffect.DoEffect(); //Dissable Scroll this.SetScrollEnable(false); break; case GameSceneStates.GameOver: WaveServices.TimerFactory.CreateTimer("GameoverTimer", TimeSpan.FromMilliseconds(200), () => { this.currentScoreTB.IsVisible = false; this.Pause(); var screenTransition = new CoverTransition(TimeSpan.FromSeconds(0.5), CoverTransition.EffectOptions.FromBotton) { EaseFunction = new CubicEase() { EasingMode = EasingMode.EaseInOut } }; WaveServices.ScreenContextManager.Push(new ScreenContext(new GameOverScene()), screenTransition); }, false); break; default: break; } }
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 }; WaveServices.TaskScheduler.CreateTask(() => { intialScene = new InitialScene(); intialScene.Initialize(WaveServices.GraphicsDevice); }) .ContinueWith(() => { WaveServices.ScreenContextManager.To(new ScreenContext(intialScene), transition); }); }
/// <summary> /// Do game over transition. /// </summary> private void GameOverTransition() { var notRunningInEditorMode = this.Owner.Scene is GameScene; if (notRunningInEditorMode) { this.IsScoreVisible = false; this.Owner.Scene.Pause(); var screenTransition = new CoverTransition(TimeSpan.FromSeconds(0.5), CoverTransition.EffectOptions.FromBotton) { EaseFunction = new CubicEase() { EasingMode = EasingMode.EaseInOut } }; WaveServices.ScreenContextManager.Push(new ScreenContext(new GameOverScene(this.CurrentScore)), screenTransition); } else { this.SetState(GameplayStates.Gameplay); } }
/// <summary> /// Creates the UI elements and add them to the EntityManager. /// </summary> private void CreateUI() { var gameOver = EntitiesFactory.CreateGameOverText(); this.EntityManager.Add(gameOver); var currentScore = EntitiesFactory.CreateCurrentScore(275); currentScore.Text = this.gameScene.CurrentScore.ToString(); this.EntityManager.Add(currentScore); var bestScoreText = EntitiesFactory.CreateBestScore(395, this.gameStorage.BestScore); this.EntityManager.Add(bestScoreText); var button = EntitiesFactory.CreatePlayButton(423, 451); this.EntityManager.Add(button); button.Click += (o, e) => { var screenTransition = new CoverTransition(TimeSpan.FromSeconds(0.25), CoverTransition.EffectOptions.FromBotton) { EaseFunction = new CubicEase() { EasingMode = EasingMode.EaseInOut } }; WaveServices.ScreenContextManager.Pop(screenTransition); this.gameScene.SetState(GameScene.GameSceneStates.Gameplay); this.gameScene.Resume(); }; var background = EntitiesFactory.CreateGameOverBackground(); this.EntityManager.Add(background); }
/// <summary> /// Creates the UI elements and add them to the EntityManager. /// </summary> private void CreateUI() { var currentScore = EntitiesFactory.CreateCurrentScore(275, (int)this.VirtualScreenManager.VirtualWidth); currentScore.Text = this.finalScore.ToString(); this.EntityManager.Add(currentScore); var bestScoreText = EntitiesFactory.CreateBestScore(395, this.gameStorage.BestScore); this.EntityManager.Add(bestScoreText); var button = EntitiesFactory.CreatePlayButton(423, 451); this.EntityManager.Add(button); button.Click += (o, e) => { var screenTransition = new CoverTransition(TimeSpan.FromSeconds(0.25), CoverTransition.EffectOptions.FromBotton) { EaseFunction = new CubicEase() { EasingMode = EasingMode.EaseInOut } }; WaveServices.ScreenContextManager.Pop(screenTransition); }; }