2
respostas

Dificuldade não esta reiniciando

Olá Ricardo,

Estou com problema quando clico na tela para reiniciar o jogo, o jogo reinicia, porem os obstáculos continuam vindo na velocidade/frequência em que estavam antes de perder.

2 respostas

Oi Guilherme, Vc pode mandar o código da classe dificuldade e o código do Diretor onde reiniciamos o jogo?

Posso sim,

Segue código abaixo.

public class ControleDeDificuldade : MonoBehaviour
{
    [SerializeField]
    private float tempoParaDificuldadeMaxima;
    private float tempoDecorrido;
    public float Dificuldade { get; private set; }

    private void Update()
    {
        this.tempoDecorrido += Time.deltaTime;
        this.Dificuldade = this.tempoDecorrido / this.tempoParaDificuldadeMaxima;
        this.Dificuldade = Mathf.Min(1, this.Dificuldade);

    }
}
public class DiretorDeCena : MonoBehaviour
{
    private ControlaAviao aviao;
    private ControlaPontuacao pontuacao;
    private InterfaceGameOver interfaceGameOver;

    private void Start()
    {
        this.aviao = GameObject.FindObjectOfType<ControlaAviao>();
        this.pontuacao = GameObject.FindObjectOfType<ControlaPontuacao>();
        this.interfaceGameOver = GameObject.FindObjectOfType<InterfaceGameOver>();
    }

    public void FinalizarJogo()
    {
        Time.timeScale = 0; 
        this.pontuacao.SalvarRecorde(); 
        this.interfaceGameOver.MostrarInterface();
    }

    public void ReiniciarJogo()
    {
        this.interfaceGameOver.OcultarInterface();
        Time.timeScale = 1;
        this.aviao.Reiniciar();
        this.DestruirObstaculos();
        this.pontuacao.Reiniciar();
    }

    private void DestruirObstaculos()
    {
        ControlaObstaculos[] obstaculos = GameObject.FindObjectsOfType<ControlaObstaculos>();
        foreach(ControlaObstaculos obstaculo in obstaculos)
        {
            obstaculo.Destruir();
        }
    }

}