Beispiel #1
0
    /// <summary>
    /// Recupera a Light atual e adianta o cursor
    /// </summary>
    /// <returns>The current light.</returns>
    public LightBehaviourScript GetCurrentLight()
    {
        LightBehaviourScript light = sequence[sequenceCursor];

        sequenceCursor++;
        return(light);
    }
Beispiel #2
0
 // Use this for initialization
 void Start()
 {
     sun = GameObject.Find ("Sun").GetComponent<SunBehaviourScript> ();
     lighting = GameObject.Find ("Lighting").GetComponentInChildren<LightBehaviourScript> ();
     linesToWrite_blue = new List<string> ();
     linesToWrite_green = new List<string> ();
     linesToWrite_red = new List<string> ();
 }
Beispiel #3
0
    // adiciona uma nova luz para a sequencia
    public void AddLight()
    {
        // randomiza uma posicao das luzes possives
        int index = Random.Range(0, lights.Count);
        LightBehaviourScript light = lights[index];

        // adiciona na sequencia
        sequence.Add(light);
        lastIndexChange = sequence.Count;
    }
Beispiel #4
0
    /// <summary>
    /// Troca um elemento da sequencia por outro aleatorio
    /// </summary>
    public void ChangeOne()
    {
        // randomiza uma posicao das luzes possives
        int index = Random.Range(0, lights.Count);
        LightBehaviourScript light = lights[index];
        // pega uma posicao aleatorio da sequencia
        int seqRandom = Random.Range(0, sequence.Count);

        // adiciona na sequencia
        sequence[seqRandom] = light;
        lastIndexChange     = index;
    }
Beispiel #5
0
    /// <summary>
    /// Faz a luz piscar
    /// </summary>
    /// <param name="light"></param>
    /// <param name="timeToChange"></param>
    /// <returns></returns>
    public IEnumerator Blink(LightBehaviourScript light, float timeToChange)
    {
        // toca a nota
        light.TurnOn();
        // espera
        yield return(new WaitForSeconds(timeToChange));

        // apaga a nota
        light.TurnOff();
        // aguarda meio segundo antes de ligar
        yield return(new WaitForSeconds(0.5f));
    }
    /// <summary>
    /// Captura a Light clicada
    /// </summary>
    /// <param name="light"></param>
    private void HandlerTouchLight(LightBehaviourScript light)
    {
        //se não for o turno do jogador ignora ou o jogo está pausado
        if (!isPlayerTurn | !isPlaying)
        {
            return;
        }

        // liga a lampada
        StartCoroutine(Simon.Blink(light));

        // pego a luz atual da squencia do simon

        LightBehaviourScript CurrentLight = Simon.GetCurrentLight();

        // compara com light clicada
        if (light == CurrentLight)
        {
            Debug.Log("### Acertou ###");
            // a cada acerto soma
            ComboUp();
            Scorer();
            // verifica se terminou a sequencia
            if (Simon.SequenceCursor == Simon.SequenceLenght)
            {
                // quando passa de nivel termina a jogada do
                isPlayerTurn = false;
                Debug.Log("### Level UP ###");
                // level up
                LevelUp();
            }
        }
        else
        {
            // erro
            Debug.Log("### Errou ###");
            CurrentLight.Blink();
            Invoke("Error", .5f);
        }
    }
Beispiel #7
0
 /// <summary>
 /// Faz a luz piscar
 /// </summary>
 /// <param name="light"></param>
 /// <returns></returns>
 public IEnumerator Blink(LightBehaviourScript light)
 {
     yield return(Blink(light, timeToChange));
 }