private IEnumerator NextLevel(EventHandler overlapScreen, bool skipCalcScore) { Reset(); if (!skipCalcScore) { var loop = true; ScoreGUIController.Show((s, e) => { loop = false; }, LevelManager.LevelNumber, Player1, Player2); while (loop) { yield return(null); } yield return(new WaitForSeconds(1.5f)); if (overlapScreen == null) { overlapScreen = (s, e) => { ScoreGUIController.Hide(); } } ; else { overlapScreen += (s, e) => { ScoreGUIController.Hide(); } }; } StartCoroutine(NextLevelLoadScreen(overlapScreen)); }
// Use this for initialization void Start() { levelMenager = FindObjectOfType <LevelMenager>(); scoreGUI = FindObjectOfType <ScoreGUIController>(); platform = GameObject.FindGameObjectWithTag(Tags.PLATFORM); if (isPowerUpBall) { GameObject[] powerups = GameObject.FindGameObjectsWithTag(Tags.POWER_UP); GameObject[] balls = GameObject.FindGameObjectsWithTag(Tags.BALL); GameObject[] rockets = GameObject.FindGameObjectsWithTag(Tags.ROCKET); Collider2D collider = GetComponent <Collider2D>(); foreach (GameObject powerup in powerups) { Physics2D.IgnoreCollision(collider, powerup.GetComponent <Collider2D>()); } foreach (GameObject ball in balls) { Physics2D.IgnoreCollision(collider, ball.GetComponent <Collider2D>()); } foreach (GameObject rocket in rockets) { Physics2D.IgnoreCollision(collider, rocket.GetComponent <Collider2D>()); } } }
private IEnumerator ShowGameOver() { var player = FieldController.Instance.FindBlock(Block.Player1); if (player != null) { player.EditorMode = true; } player = FieldController.Instance.FindBlock(Block.Player2); if (player != null) { player.EditorMode = true; } // Show GameOver in game GameGUIController.Instance.ShowGameOver(); yield return(new WaitForSeconds(5)); Reset(); // Show calc score AudioManager.EnableSecondarySound = true; var loop = true; ScoreGUIController.Show((s, e) => { loop = false; }, LevelManager.LevelNumber, Player1, Player2); while (loop) { yield return(null); } ScoreGUIController.Hide(); // Show final screen with GameOver FinalScreenController.Show(); yield return(new WaitForSeconds(3)); FinalScreenController.Hide(); // Show high score var playerScore = Mathf.Max(Player1.Score, Player2.Score); if (playerScore > HiScore) { HiScore = playerScore; loop = true; HiScoreGUIController.Show(HiScore, (s, e) => { loop = false; }); while (loop) { yield return(null); } HiScoreGUIController.Hide(); } LevelManager.Reset(); MainMenuController.Show(Player1.Score, Player2.Score); }
// Use this for initialization void Start() { ball = GameObject.FindGameObjectWithTag(Tags.BALL); scenName = SceneManager.GetActiveScene().name; scoreGUI = FindObjectOfType <ScoreGUIController>(); if (Time.timeScale == 0f) { Time.timeScale = 1f; } FindObjectOfType <AudioMenager>().PlayTheme(musicTheme); SetHealthText(); }