Não estou conseguindo movimentar a bolinha, atualizar a tela e manter o fundo preto. Observe que o código quando roda a bolinha atualiza a posição, mas o fundo não.
Penso que se houver alguma forma de criar um canvas sem utilizar o HTML, a posição da bolinha será atualizada sem ser necessário atualizar o fundo. Mas não consegui encontrar como fazer isso.
Sei que não é o p5*JS, quero tentar fazer tudo na mão.
Alguém sabe como ajudar?
Código que fiz abaixo:
<html lang="pt-br">
<head>
<canvas width="600" height="400"></canvas>
<meta charset="utf-8">
</head>
<body>
<script>
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = 'black';
pincel.fillRect(0, 0, 600, 400);
function desenhaFundo(){
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = 'black';
pincel.fillRect(0, 0, 600, 400);
}
function desenhaBola(x, y){
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
var raio = 10;
pincel.fillStyle = 'white';
pincel.arc(x, y, raio, 0, 2 * Math.PI);
pincel.fill();
}
function desenhaRaquetePlayer(){
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = 'white';
pincel.fillRect(5, 165, 7, 70);
pincel.fill();
}
function movimentaBolinha(){
desenhaBola(x, 200);
if (x > 600){
movimento *= -1;
}
else if (x <= 0){
movimento *= 1;
}
x = x + movimento;
}
function limpaTela() {
pincel.fillStyle = 'black';
pincel.fillRect(12, 0, 590, 400);
}
var x = 0;
var movimento = 1;
desenhaRaquetePlayer();
setInterval(movimentaBolinha, 5);
//setInterval(limpaTela, 4);
</script>
</body>
</html>