// Ativa animacao de warning na tela public IEnumerator WarnPlayer() { yield return(new WaitForSeconds(3)); yield return(new WaitUntil(() => LivesController.GetVidas() == 1)); CanvasHud.SetBool("Warning", true); yield return(new WaitUntil(() => CanvasHud.GetCurrentAnimatorStateInfo(0).IsTag("piscando"))); CanvasHud.SetBool("Warning", false); }
private void LoseGame() { if (GameMode.Mode == GameMode.GameModes.Minigame) { MinigameModeController minigameModeController = FindObjectOfType <MinigameModeController>(); minigameModeController.OnMinigameFinished(false, "Preguiça"); } else { LivesController.RemVidas(); DespawnBeds(); animator.SetTrigger("lose"); // BUG FIX int nCurrentLives = LivesController.GetVidas(); if (nCurrentLives == nInitialLives - 2) { LivesController.addVidas(); } GameObject.Find("FadeImage").GetComponent <FadeController>().CallFading("Main"); } }
void Start() { // Ajusta as instruções para dispositivos Android: no lugar de "use as setas", aparece "toque na tela" #if UNITY_ANDROID Image[] children = use.GetComponentsInChildren <Image>(); foreach (Image child in children) { child.gameObject.SetActive(false); } use.GetComponent <Text>().text = "Toque na tela"; #endif // Inicialização isTouchingBed = false; nBedsTouched = 0; beds = new List <Transform>(); bedControls = new List <int>(); wasBedHit = new List <bool>(); backgrounds = new List <Transform>(); bgWidth = background.GetComponentInChildren <SpriteRenderer>().sprite.bounds.size.x *background.localScale.x; cameraWidth = mainCamera.GetComponent <Camera>().orthographicSize * 2f * mainCamera.GetComponent <Camera>().aspect; nInitialLives = LivesController.GetVidas(); nGreats = 0; // Ajusta os parâmetros do jogo de acordo com a dificuldade SetUpDifficulty(); // Vetor com os controles que o microgame reconhece int[] controls = { UP, DOWN, UPANDDOWN }; // Cria as camas for (int i = 0; i < numberOfBeds; i++) { // Define um controle aleatório para cada cama criada int index = Random.Range(0, controls.Length); bedControls.Add(controls[index]); // Seleciona a prefab adequada Transform prefab; if (index == 0) { prefab = bedUpPrefab; } else if (index == 1) { prefab = bedDownPrefab; } else { prefab = bedUpAndDownPrefab; } // Instancia Transform instance = Instantiate( prefab, new Vector3(transform.position.x + deltaDistance * (i + 1), prefab.position.y + mainCamera.transform.position.y), //modificado para evitar conflito com a cena do jogo principal new Quaternion(0, 0, 0, 0)); beds.Add(instance); // Determina que essa cama ainda não foi atingida wasBedHit.Add(false); } // Cria os planos de fundo float lastBedPos = beds[beds.Count - 1].position.x; float lastBgPos = background.position.x; float totalDistance = (lastBedPos + cameraWidth) - (background.position.x + bgWidth / 2); float numberOfBgs = totalDistance / bgWidth; numberOfBgs = Mathf.Ceil(numberOfBgs); for (int i = 0; i < numberOfBgs; i++) { Transform instance = Instantiate( background, new Vector3(lastBgPos + bgWidth, background.position.y), new Quaternion()); lastBgPos = instance.position.x; backgrounds.Add(instance); } }