Oi, Matheus! Tudo certo por aí?
Antes de partirmos para a solução, gostaria de te parabenizar pelo projeto. De verdade, ele ficou muito bonito, parabéns pela criatividade!
Para termos a impressão de que a bolinha está se movimentando, podemos, por exemplo, criar uma bolinha branca antes da criação das bolinhas azuis. Dessa forma, estaremos “apagando” os desenhos anteriores. Para fazer isso, será necessário modificar as funções desenhabolinha()
, atualizatela()
e borracha()
.
Inicialmente, iremos tornar a função desenhabolinha()
mas dinâmica, adicionando um parâmetro para adição de cores, observe:
function desenhabolinha(x, y, raio, cor) {
pincel.fillStyle = cor
pincel.beginPath()
pincel.arc(x, y, raio, 0, 2 * Math.PI)
pincel.fill()
}
O parâmetro cor
foi adicionando e ele corresponderá ao valor atribuído à pincel.fillStyle
, fazendo com que, a partir da cor passada por parâmetro (azul, vermelho, branco, etc.), será desenhado um círculo em nossa tela com a cor correspondente.
Feito isso, podemos partir para a função borracha()
. Dentro dela, iremos remover o trecho de código pincel.clearRect()
e então chamar a função desenhabolinha()
:
function borracha() {
desenhabolinha(x, y, 12, "white")
}
Com a chamada de desenhabolinha()
, construímos um novo desenho, uma bolinha branca. Para uma melhor compreensão dos valores passados, segue abaixo uma explicação sobre cada um deles:
x
: corresponde à posição horizontal da bolinha azul;y
: corresponde à posição vertical da bolinha azul;12
: raio da nova bolinha (branca);"white"
: coloração da nova bolinha, a qual será branca.
Por fim, iremos modificar a função atualizatela()
:
function atualizatela() {
borracha()
desenhabolinha(x, y, 10, "blue")
x++
y++
}
Na primeira linha do bloco de atualizatela()
, chamamos a função borracha()
. Após isso, chamamos a função desenhabolinha()
, passando os parâmetros para desenhar bolinha azul (note que o parâmetro referente à coloração azul foi adicionado).
Com isso, toda vez que executarmos atualizatela()
, parecerá que a bolinha azul está caindo, visto que, antes de criar um novo círculo azul, é criado um círculo branco, “cobrindo” o que foi desenhado anteriormente. Esse efeito também ocorre, pois a bolinha branca tem o raio maior que o da azul.
Matheus, abaixo estou deixando a parte do seu código com as três funções que modificamos:
function desenhabolinha(x, y, raio, cor) {
pincel.fillStyle = cor
pincel.beginPath()
pincel.arc(x, y, raio, 0, 2 * Math.PI)
pincel.fill()
}
var x = 120
var y = 0
function atualizatela() {
borracha()
desenhabolinha(x, y, 10, "blue")
x++
y++
}
function borracha() {
desenhabolinha(x, y, 12, "white")
}
Espero ter ajudado! Caso surja alguma dúvida após minha explicação ou ao longo dos seus estudos, conte comigo!
Forte abraço e até mais.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.