No tópico 7 da aula 4, o professor mostra o código que faz a bolinha ficar pulsando na tela. Eu quis incrementar o código para fazer com que, quando a bolinha estivesse crescendo, tivesse uma velocidade maior do que quando estivesse diminuindo.
Ficou assim:
<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, cor) {
pincel.fillStyle = cor;
pincel.beginPath();
pincel.arc(x, y, raio, 0, 2 * Math.PI);
pincel.fill();
}
function limpaTela() {
pincel.clearRect(0, 0, 600, 400);
}
var raio = 19;
var fatorCrescimento = 0;
var velocidade = 0;
function atualizaTela() {
limpaTela();
if(raio > 30) {
fatorCrescimento = -1;
} else if (raio < 20) {
fatorCrescimento = 1;
}
raio = raio + fatorCrescimento;
if(fatorCrescimento == 1) {
velocidade = 10;
} else if (fatorCrescimento == -1) {
velocidade = 50;
}
desenhaCirculo(300, 200, raio, 'blue');
}
setInterval(atualizaTela, velocidade);
</script>
Declarei a variável velocidade, alterando o seu valor se o circulo estivesse crescendo ou não. Porém tem algum erro, pois o valor da velocidade lido no final pela função setInterval é sempre 0.
O que estou fazendo de errado?