Olá, pessoal...blz?
Eu montei um código pra manter a bolinha apenas dentro do limite do espaço que temos. Embora tenha dado certo, achei que ficou muita gambiarra :(
Alguém consegue ter uma visão diferente dessa?
O código ficou assim:
<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();
}
var x = 300;
var y = 200;
function moverBolinha({ key }) {
pincel.fillStyle = "lightgray";
pincel.fillRect(0, 0, 600, 400);
if (key === "ArrowUp" && y >= 30) {
y -= 10;
}
if (key === "ArrowDown" && y <= 370) {
y += 10;
}
if (key === "ArrowLeft" && x >= 30) {
x -= 10;
}
if (key === "ArrowRight" && x <= 570) {
x += 10;
}
console.log("x", x, "y", y);
desenhaCirculo(x, y, 20, "blue");
}
desenhaCirculo(x, y, 20, "blue");
document.onkeydown = moverBolinha;
</script>