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

Programa funcionou, tentei fazer a bolinha aumentar enquanto se deslocava, porém não consegui...Alguém?

<canvas width="600" heigth="400"></canvas>

    <script>

        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');
        pincel.fillStyle = 'lightgray';
        pincel.fillRect(0, 0, 600, 400);

        function desenhaCirculo(x,y, raio) {



            pincel.fillStyle = 'blue';
            pincel.beginPath();
            pincel.arc(x, y, raio, 0, 2 * Math.PI); //Função Math.PI == 3.14
            pincel.fill();
        }

        function limpaTela() { //limpa posição anterior da bolinha

            pincel.clearRect(0, 0, 600, 400); //percurso que bolinha percorrerá
        }

        var x = 20;

        function atualizaTela() {

            limpaTela();
            desenhaCirculo(x, 20, 10);
            x++;
        }

        setInterval(atualizaTela, 10);  //Função movimento da bolinha
2 respostas

Olá, Edir! Tudo bem? Como vai?

Bacana sua ideia!!! Vamos lá!!!

Primeiro vamos criar uma variável para o raio fora da função que antecede o atualizaTela:

var x = 20
 var raio = 10;

Depois, dentro da função atualizaTela vamos colocar uma condicional if:

function atualizaTela() {

        limpaTela();        
        desenhaCirculo(x, 20, raio);
        if( raio < 300 ){
            raio++
        }

e abaixo vamos mexer no andamento do x:

function atualizaTela() {

        limpaTela();        
        desenhaCirculo(x, 20, raio);
        if( raio < 300 ){
            raio++
        }
        x=x+5;
    }

Abaixo, no setInterval vamos colocar um intervalor de 100, mas fica a seu critério.

setInterval(atualizaTela, 100);

Bom, é isso!!! Segue o código completo:

<canvas width="600" height="400"></canvas>

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle = 'lightgray';
    pincel.fillRect(0, 0, 600, 400);


    function desenhaCirculo(x, y, raio) {

        pincel.fillStyle = 'blue';
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }

    function limpaTela() {
        pincel.clearRect(0, 0, 600, 400);
    }

    var x = 20;
    var raio = 10;

    function atualizaTela() {

        limpaTela();
        desenhaCirculo(x, 20, raio);
        if (raio < 300) {
            raio++
        }
        x = x + 5;
    }

    setInterval(atualizaTela, 100);

</script>

Espero ter ajudado, amigo!!!

Bons estudos e vamos em frente!!!

solução!

Ajudou muito Cássio, obrigado pelo apoio!!!!