예제 #1
0
    // 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);
    }
예제 #2
0
    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");
        }
    }
예제 #3
0
    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);
        }
    }