/// <summary>
        /// Search for a screen
        /// </summary>
        public T SearchScreen <T>() where T : GameScreen
        {
            int index = Screens.FindIndex(s => s is T);

            if (index >= 0)
            {
                return((T)Screens[index]);
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// Troca para próxima tela da lista.
        /// </summary>
        /// <param name="reset">True se deseja que o gerenciador chame o método Reset() da tela atual.</param>
        public void Next(bool reset)
        {
            int index = Screens.FindIndex(x => x.Equals(Active));

            if (index >= Screens.Count - 1)
            {
                index = 0;
            }
            else
            {
                index++;
            }

            Change(Screens[index].Name, reset);
        }
        /// <summary>
        /// Troca para a tela anterior da lista.
        /// </summary>
        /// <param name="reset">True se deseja que o gerenciador chame o método Reset() da tela atual.</param>
        public void Back(bool reset)
        {
            //Voltar a tela.
            int index = Screens.FindIndex(x => x.Equals(Active));

            if (index <= 0)
            {
                index = Screens.Count - 1;
            }
            else
            {
                index--;
            }

            Change(Screens[index].Name, reset);
        }