Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bandeira alemanha com um círculo amarelo no meio

Quando ocorre a troca entre as bandeiras, a bandeira da alemanha fica com o círculo da bandeira do brasil no meio mas amarelo.

<meta charset="utf-8">
<canvas width="600" height="400"> </canvas>

<script>





    function bandeiraBrasil(){
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.fillStyle = 'green';
        pincel.fillRect(0,0,600,400);
        pincel.fill();

        pincel.fillStyle ='yellow';
        pincel.beginPath();
        pincel.moveTo(50,200);
        pincel.lineTo(550,200);
        pincel.lineTo(300,350);
        pincel.fill();    

        pincel.fillStyle ='yellow';
        pincel.beginPath();
        pincel.moveTo(50,200);
        pincel.lineTo(550,200);
        pincel.lineTo(300,50);
        pincel.fill();

        pincel.fillStyle = 'blue';
        pincel.beginPath();
        pincel.arc(300,200,100,0,2*3.14);//primeiro é eixo x, eixo y, raio, angulo, e PI.
        pincel.fill();

    }

    function bandeiraAlemanha(){
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.fillStyle = 'black'
        pincel.fillRect(0,0,600,133);
        pincel.fill();

        pincel.fillStyle = 'red';
        pincel.fillRect(0,133,600,133);
        pincel.fill();

        pincel.fillStyle = 'yellow';
        pincel.fillRect(0,266,600,133);
        pincel.fill();


    }

    var mostraBrasil =true;

    function trocaBandeira(){


        if (mostraBrasil==true){
            bandeiraBrasil();
            mostraBrasil=false;
        }
        else{

            bandeiraAlemanha();
            mostraBrasil = true;
        }

    }

    setInterval(trocaBandeira,1000);

</script>
1 resposta
solução!

Opa José, tudo bem com você?

Acredito que esse problema está sendo o conflito causado pelos fillda bandeira do Brasil e da Alemanha, acontece que quando utilizamos o método fillRect não precisamos adicionar novamente, então se você retirar eles da função bandeiraAlemanha(), já não terá mais esse problema, provavelmente o último fill estava pintando novamente o círculo presente na bandeira do Brasil:

    function bandeiraAlemanha(){
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.fillStyle = 'black'
        pincel.fillRect(0,0,600,133);

        pincel.fillStyle = 'red';
        pincel.fillRect(0,133,600,133);

        pincel.fillStyle = 'yellow';
        pincel.fillRect(0,266,600,133);
    }

Agora não deve estar mais tendo conflito :)

Abraços e Bons Estudos!