Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Fiz um função para o fim do jogo

        function fimDoJogo() {

            if (meusPontos >= 10) {
                fill(255);
                text("Você venceu", 50, 26);
                velocidadeXBolinha = 0;
                velocidadeYBolinha = 0;
                meusPontos = 10;
                trilha.stop();
                ponto.stop();
                raquetada.stop();
            }
            if (pontosDoOponente >= 10) {
                fill(255);
                text("Oponente venceu", 350, 26);
                velocidadeXBolinha = 0;
                velocidadeYBolinha = 0;
                pontosDoOponente = 10;
                trilha.stop();
                ponto.stop();
                raquetada.stop();
            }

        }

Mas, quando a bola trava na raquete o som fica bugado. Como faço de fato para o som parar e o jogo ficar em Stop?

3 respostas

Eu adicionei a posição da bolinha no meio da tela. E consegui parar com o bug do som fica repetido, pelo fato da bolinha estar em contato com a raquete no final do jogo. Mas, sei que o código pode ser refatorado, pois tem muita repetição.

function fimDoJogo() {

            if (meusPontos >= 10) {
                fill(255);
                text("Você venceu", 50, 26);
                velocidadeXBolinha = 0;
                velocidadeYBolinha = 0;
                xBolinha = 300;
                yBolinha = 200;
                meusPontos = 10;
                trilha.stop();
                ponto.stop();
                raquetada.stop();
            }
            if (pontosDoOponente >= 10) {
                fill(255);
                text("Oponente venceu", 350, 26);
                velocidadeXBolinha = 0;
                velocidadeYBolinha = 0;
                xBolinha = 300;
                yBolinha = 200;
                pontosDoOponente = 10;
                trilha.stop();
                ponto.stop();
                raquetada.stop();
            }

        }

Fiz também a função restart

function restart() { window.location.reload(); }

Eu chamo ela por meio de um link na página html <a href="#" onClick="restart()" class="bt">Play</a>

Fala Edson, tudo bem? Acho que tudo foi resolvido pelo jeito, certo?

Parabéns pela solução, muito bom ir além do conteúdo dado no curso.

Abraços e bons estudos.

solução!
        function fimDoJogo() {

            let vencedor;

            if (meusPontos >= 10) {
                vencedor = "Você venceu! :D";
            } else {
                vencedor = "Oponente venceu! :(";
            }

            function parar_tudo(vencedor) {

                fill(color(255,193,7));
                rect(200, 10, 200, 40, 20);

                noStroke();
                fill(0);
                text(vencedor, 300, 30);
                textAlign(CENTER, CENTER);

                velocidadeXBolinha = 0;
                velocidadeYBolinha = 0;
                xBolinha           = 300;
                yBolinha           = 200;
                trilha.stop();
                ponto.stop();
                raquetada.stop();
            }

            if (meusPontos >= 10) {
                parar_tudo(vencedor);
                   meusPontos = 10;
            }

            if (pontosDoOponente >= 10) {
                parar_tudo(vencedor);
                pontosDoOponente = 10;
            }

        }