/// <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); }
// 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> (); }
// 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; }
/// <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; }
/// <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); } }
/// <summary> /// Faz a luz piscar /// </summary> /// <param name="light"></param> /// <returns></returns> public IEnumerator Blink(LightBehaviourScript light) { yield return(Blink(light, timeToChange)); }