1
resposta

[Projeto] Desafio final

Criei uma lógica de maestria e quando alcançasse a maestria final você estaria no lvl max sendo 5 a maior maestria e a cada maestria ficaria mais difícil, então a primeira maestria era necessária nível 10, já a segunda nível 20 e assim sucessivamente. E como dito as cores trocando a cada maestria.

int level = 0;
  int mastery = 1;
  bool maxlvl = false;

  void levelUp() {
    if (level == widget.difficult * mastery * 10) {
      setState(() {
        level = 0;
        (mastery < 5) ? mastery++ : maxlvl = true;
      });
    } else {
      setState(() {
        level++;
      });
    }
  }

  List<Color> colors = [
    Colors.blue,
    Colors.green,
    Colors.yellow,
    Colors.red,
    Colors.pink
  ];
Container(
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(4),
                color: colors[mastery - 1]),
            height: 140,

Aqui estão as lógicas de level max, sendo elas desativar o botão, alterar o texto e completar a barra de progresso

onPressed: maxlvl ? null : levelUp,
child: LinearProgressIndicator(
                        color: Colors.black,
                        value: widget.difficult > 0
                            ? (maxlvl)
                                ? 1
                                : (level / widget.difficult / mastery) / 10
                            : 1,
                      ),
'Nivel: ${maxlvl ? 'MAX' : level}',

PS: Coloquei de 10 em 10 pra ficar mais facil mostrar no gif

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Uau!!! Adorei seu projeto!!! Parabéns!! Um projeto para se inspirar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software